JavaIO(四):文件操作

新建 /** * 新建文件 * @param path 绝对路径 * @return 新建成功返回ture,新建失败或以存在此文件返回false */ public static boolean newFile(String path) { File file = new File(path); file.getParentFile().mkdirs(); try { return file.createNewFile(); } catch (IOException e) { e.printStackTrace(); return false; } }     阅读全文
罗炜光's avatar
罗炜光 4月 30, 2016

JavaIO(三):Reader与Writer

InputStreamReaderpublic class Test { public static void main(String[] args) throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\Test11.txt")); //markSupported() boolean 判断此流是否支持 mark() 操作以及支持哪一项操作。 System.out.println("markSupported():" + isr.markSupported()); //ready() boolean 判断此流是否已经准备好用于读取。 System.out.println("ready():" + isr.ready()); //read() int 读取单个字符。 System.out.println("read():" + isr.read()); char[] chars1 = new char[26]; //read(char[] cbuf) int 将字符读入数组。 isr.read(chars1); System.out.println("read(char[] cbuf):" + new String(chars1)); char[] chars2 = new char[26]; //read(char[] cbuf, int off, int len) int 将字符读入数组的某一部分。 isr.read(chars2, 0, 13); System.out.println("read(char[] cbuf, int off, int len):" + new String(chars2)); //skip(long ns) long 将该流重置为最新的标记,如果从未标记过,则将其重置到该字符串的开头。 isr.skip(1); //close() void 关闭该流并释放与之关联的所有系统资源。 isr.close(); } }     阅读全文
罗炜光's avatar
罗炜光 4月 28, 2016

JavaIO(二):InputStream与OutputStream

ByteArrayInputStreampublic class Test { public static void main(String[] args) throws IOException { byte[] bytes1 = new byte[52]; for(int i = 0;i < bytes1.length;i++) { bytes1[i] = (byte) ('a' + i%26); } ByteArrayInputStream bais1 = new ByteArrayInputStream(bytes1); //skip(long n) long 从此输入流中跳过 n 个输入字节。 System.out.println("skip(long n):" + bais1.skip(256)); //available() int 返回可从此输入流读取(或跳过)的剩余字节数。 System.out.println("available():" + bais1.available()); //markSupported() boolean 测试此 InputStream 是否支持 mark/reset。 System.out.println("markSupported():" + bais1.markSupported()); //mark(int readAheadLimit) void 设置流中的当前标记位置。 bais1.mark(512); //read() int 从此输入流中读取下一个数据字节。 System.out.println("read():" + bais1.read()); byte[] bytes2 = new byte[512]; //read(byte[] int 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 System.out.println("read(byte[]):" + bais1.read(bytes2)); System.out.println(new String(bytes2)); //read(byte[] b, int off, int len) int 将最多 len 个数据字节从此输入流读入 byte 数组。 System.out.println("read(byte[] b, int off, int len):" + bais1.read(bytes2, 0, 128)); System.out.println(new String(bytes2)); //reset() void 将缓冲区的位置重置为标记位置。 bais1.reset(); System.out.println("reset():" + bais1.available()); //close() void 关闭 ByteArrayInputStream bais1.close(); } }     阅读全文
罗炜光's avatar
罗炜光 4月 26, 2016

JavaIO(一):分类

    阅读全文
罗炜光's avatar
罗炜光 4月 25, 2016

URI、URL

概述URI(uniform resource identifier)统一资源标识符URL(uniform resource locator)统一资源定位器 URL是URI的一种,不仅标识了Web 资源,还指定了操作或者获取方式,同时指出了主要访问机制和网络位置 ●在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析。相反的是,URL类可以打开一个到达资源的流。因此URL类只能作用于那些 Java类库知道该如何处理的模式,例如http:,https:,ftp:,本地文件系统(file:),和Jar文件(jar:)。     阅读全文
罗炜光's avatar
罗炜光 4月 19, 2016

File、FileFilter、FilenameFilter

概述FileFilter和FilenameFilter都是文件过滤器,都是一个接口,只有方法accept(),accept返回true表示符合所需文件标准,要过滤掉的文件则返回false     阅读全文
罗炜光's avatar
罗炜光 4月 17, 2016

String、StringBuffer、StringBuilder

    阅读全文
罗炜光's avatar
罗炜光 4月 16, 2016

设计模式之创建型模式

简单工厂(Simple Factory) 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式 一般性结构 工厂角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的Java类实现 抽象产品:担任这个角色的类是由工厂模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个Java接口或者Java抽象类实现 具体产品:工厂模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体Java类实现。     阅读全文
罗炜光's avatar
罗炜光 4月 10, 2016

Effective Java

1. 考虑用静态工厂方法代替构造器优点: 拥有名称,更容易识别 不必每次调用时,都创建一个新的对象 可以返回返回类型的任何子类型对象 使代码更简洁 缺点: 类如果不含共有的或者受保护的构造器,就不能被子类化。 它们与其他的静态方法实际上没有任何区别。 应用: 服务提供者框架     阅读全文
罗炜光's avatar
罗炜光 4月 08, 2016