一、使用字符流实现读文件:
示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class RWByCharStream {
public static void main(String[] args) {
try {
File file = new File("java.txt");
// 产生一个文件的输入流(这是一个字节流)
FileInputStream fis = new FileInputStream(file);
// 转化为字符流
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
char input[] = new char[100];
int l = 0;// 创建l是防止最后一次输出input的时候,因为input没填满而输出上一轮中的残留字符,
// 所以最后一轮应该输出0~l的字符
while ((l = isr.read(input)) != -1) { // 将字符流读入input数组中
System.out.println(new String(input, 0, l));// 输出的时候会强制调用input.toString方法
}
isr.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结果:读出java.txt内容显示在控制台上
二、使用字符流实现写文件:
示例:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class RWByCharStream {
public static void main(String[] args) {
try {
// File file = new File("java.txt");
// 产生一个文件的输入流(这是一个字节流)
FileInputStream fis = new FileInputStream("java.txt");
FileOutputStream fos = new FileOutputStream("java_new.txt");
// 转化为字符流
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
char input[] = new char[100];
int l = 0;// 创建l是防止最后一次输出input的时候,因为input没填满而输出上一轮中的残留字符,
// 所以最后一轮应该输出0~l的字符
while ((l = isr.read(input)) != -1) { // 将字符流读入input数组中
// System.out.println(new String(input, 0, l));//
// 输出的时候会强制调用input.toString方法
// String inputString = new String(input, 0, l);
osw.write(input, 0, l);
}
isr.close();
fis.close();
osw.close();
fos.close();
System.out.println("done");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
结果:
copy了一个.txt文件