欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java字符流(FileReader/FileWriter)

程序员文章站 2024-03-18 18:58:46
...

编码回顾

  • 说到字符流就必须说到字符编码
  • 经典的编码ASCII:
  • ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。
  • 一个英文字符可以用一个字节的空间存储,在将英文字符存储到一个字节的空间中去的时候,需要将字符按照编码以计算机能够识别的方式存储。这个过程就是字符编码。
  • Java平台使用Unicode编码约定存储字符值

字符流

使用字符流代替字节流的程序会自动适应本地字符集

案例一:使用字符流读取写入文件

		FileReader in;
		FileWriter out;

		in = new FileReader("C:\\Users\\swx593221\\Desktop\\input.txt");
		out = new FileWriter("C:\\Users\\swx593221\\Desktop\\output.txt");

		int c;
//		循环读取字节,依次读取一个字节然后放入另外一个文件中
		while ((c = in.read()) != -1) {
			out.write(c);
		}

		System.out.println("Success...");
//		关闭字节流
		in.close();
		out.close();

注意:

  • 字节流FileInputStream/FileOutputStream以及字符流FileWriter/FileReader都是使用int变量进行读写
  • 在字符流中,int变量的后16位保留字符值; 在字节流中,int变量在其最后8位中保留一个字节值。(一个int占4个字节)

案例二:字符流读取字符串行

		FileReader in;
		FileWriter out;

		BufferedReader reader;
		PrintWriter writer;

		in = new FileReader("C:\\Users\\swx593221\\Desktop\\input.txt");
		out = new FileWriter("C:\\Users\\swx593221\\Desktop\\output.txt");

		reader = new BufferedReader(in);
		writer = new PrintWriter(out);

		String s;
//		循环读取字节,依次读取一个字节然后放入另外一个文件中
		while ((s = reader.readLine()) != null) {
			writer.println(s);
		}

		System.out.println("Success...");
//		关闭字节流
		reader.close();
		writer.close();
相关标签: Java IO