java IO流三:字符流 FileReader & FileWriter
程序员文章站
2024-03-05 15:09:00
...
FileReader
package com.company01.IO;
/*
java.io.Reader;
java.InputStreamReader; 转换流(字节输入流 ---> 字符输入流)
java.io.FileReader; 文件字符输入流 只能读取纯文本,字符流可以一次读取一个汉字,而字节流只能读取汉字的一半,字节流容易出现乱码
*/
import java.io.*;
public class FileReadrTest01 {
public static void main(String[] args) {
FileReader fr = null;
try{
fr = new FileReader("test01");
// 开始读
char[] chars = new char[215]; // 1KB
int temp = 0;
while((temp=fr.read(chars)) != -1){
// 将char数组有效部分转换成字符串
System.out.print(new String(chars, 0, temp));
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(fr != null){
try{
fr.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
FileWriter
package com.company01.IO;
/*
java.io.Write;
java.io.OutputStreamWriter; 转换流(字节输入流 ---> 字符输入流)
java.io.FileWriter; 文件字符输入流
*/
import java.io.*;
public class FileWriterTest01 {
public static void main(String[] args) throws Exception{
// 创建文件字符输入流
//FileWriter fw = new FileWriter("test01"); // 覆盖
FileWriter fw = new FileWriter("test01", true); // 追加
// 开始写
fw.write("中国我爱你");
fw.write("\n");
// 将char数组的一部分写入
char[] chars = {'我','是','中','国','人','!'};
fw.write(chars, 0, 5);
// 刷新
fw.flush();
// 关闭
fw.close();
}
}
使用FileReader & FileWriter完成文件复制
package com.company01.IO;
/*
文件复制
只能复制纯文本文件
*/
import java.io.*;
public class CopyTest02 {
public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("test01.txt");
FileWriter fw = new FileWriter("test02.txt");
// 一边读一边写
char[] chars = new char[512]; // 1KB
int temp = 0;
while((temp=fr.read(chars)) != -1){
// 写
fw.write(chars, 0, temp);
}
fw.flush();
fr.close();
fw.close();
}
}
上一篇: jQuery之attr属性操作
下一篇: Java - io框架[字符流](三)