关于字符流操作文件以及实现后续文件的追加

字符流与字节流一样,也有两个抽象的顶级父类,分别是Reader和Writer。其中Reader是字符输入流,用于从某个源设备读取字符,Writer是字符输出流,用于向某个目标设备写入字符。


在程序开发中,经常要对文本文件的内容进行读取,如果想从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或者是一组字符。接下来为大家举个例子。现在当前目录下新建文件“reader.txt”并在其中输入字符“hello world”,然后通过FileReader读取文件中的字符。

import java.io.IOException;

public class Test01 {

	public static void main(String[] args) throws IOException {
		FileReader reader=new FileReader("F:\\hw.txt");
		int ch=reader.read();//字符输入流的read()方法返回的是int类型的值
		while(ch!=-1){
			
			System.out.println((char)ch);//如果想获得字符就需要使用强制类型转换
			ch=reader.read();
		}
		reader.close();

	}

}

执行结果为:

首先创建了一个FileReader对象与文件关联,然后通过while循环每次从文件中读取一个字符并打印,这样就实现了我们的目的:FileReader读取字符的操作。(这里也要注意一下ch=reader.read()所放置的位置)。那么如果要向文件中写入字符就需要使用FileWriter类。那就再来一个栗子吧!

import java.io.FileWriter;
import java.io.IOException;

public class Test02 {

	public static void main(String[] args) throws IOException {
		FileWriter writer =new FileWriter("F:\\pp.txt");
		String str="努力学习吧!";
		writer.write(str);
		writer.close();

	}

}

运行成功后的结果:

这里面的“F:\\pp.txt”不是我手动新建的,是你指定好了路径与文件名,写入的时候就自动生成的文件。FileWriter与FileOutputStream一样,如果指定的文件不存在,就会先创建文件,再写入数据,如果文件存在,则会首先清空文件中的内容,再进行写入。

如果想在文件末尾进行内容的追加,同样需要调用重载的构造方法。这样就可以了:

import java.io.FileWriter;
import java.io.IOException;

public class Test02 {

	public static void main(String[] args) throws IOException {
		FileWriter writer =new FileWriter("F:\\pp.txt",true);
		String str="人丑就要多读书!";
		writer.write(str);
		writer.close();

	}

}

结果图:



猜你喜欢

转载自blog.csdn.net/loveliness_peri/article/details/80109506