java io流之字符流

字符流

在程序中一个字符等于两个字节,那么java提供了Reader、Writer两个专门操作字符流的类。

字符输出流:Writer

Writer本身是一个字符流的输出类,此类的定义如下:

public abstract class Writer extends Object implements Appendable,Closeable,Flushable

此类本身也是一个抽象类,如果要使用此类,则肯定要使用其子类,此时如果是向文件中写入内容,所以应该使用FileWriter的子类。

FileWriter类的构造方法定义如下:

public FileWriter(File file) throws IOException

    字符流的操作比字节流操作好在一点,就是可以直接输出字符串了,不用再像之前那样进行转换操作了。

public FileWriter(File file,boolean append) throws FileNotFoundException

    在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。

 


字符输入流:Reader

Reader是使用字符的方式从文件中取出数据,Reader类的定义如下:

public abstract class Reader extends Objects implements Readable,Closeable

Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。

FileReader的构造方法定义如下:

public FileReader(File file) throws FileNotFoundException

小🌰 :
/**
* 字符流操作,文件内容后面追加内容。而不是覆盖
*/
@Test
public void testFileWriteAppend() throws IOException {
File file = new File(charStreamPath + File.separator + "1.txt");
Reader reader = new FileReader(file);

int len;
char[] chars = new char[1024];
StringBuilder sb = new StringBuilder("");
while ((len = reader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}

reader.close();
System.out.println("原始文本:\n" + sb.toString());

Writer writer = new FileWriter(file, true);
writer.write("我才是追加的");

writer.flush();
writer.close();
}

posted on 2017-01-02 16:50  丹枫化雪  阅读(138)  评论(0)    收藏  举报

导航