本文共 3040 字,大约阅读时间需要 10 分钟。
如果我们知道用记事本打开文本文件能够读懂,(不是乱码)就采用字符流,否则就用字节流。字节流有4种方式实现,推荐掌握第4种。
//一次读写一个字节
private static void method1(File srcFile,File destFile) throws IOException {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
int by;
while((by = fis.read())!=-1) {
fos.write(by);
}
fos.close();
fis.close();
}
//一次读写一个字节数组
private static void method2(File srcFile,File destFile) throws IOException {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
int len = 0;
byte [] b = new byte[1024];
while((len = fis.read(b))!=-1) {
fos.write(b,0,len);
}
fos.close();
fis.close();
}
//字符缓冲流一次读写一个字节
private static void method3(File srcFile,File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(destFile));
int by;
while((by = bis.read())!=-1) {
bos.write(by);
}
bos.close();
bis.close();
}
//字符缓冲流一次读写一个字节数组
private static void method4(File srcFile,File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(destFile));
int len;
byte [] b = new byte[1024];
while((len = bis.read(b))!=-1) {
bos.write(b,0,len);
}
bos.close();
bis.close();
}
//基本字符流一次读写一个字符
private static void method1(String srcString,String destString)
throws IOException {
FileReader fr = new FileReader(srcString);
FileWriter fw = new FileWriter(destString);
int ch;
while((ch = fr.read())!=-1) {
fw.write(ch);
}
fw.close();
fr.close();
}
//基本字符流一次读写一个字符数组
private static void method2(String srcString,String destString)
throws IOException {
FileReader fr = new FileReader(srcString);
FileWriter fw = new FileWriter(destString);
int len;
char [] c = new char[1024];
while((len = fr.read(c))!=-1) {
fw.write(c,0,len);
}
fw.close();
fr.close();
}
//字符缓冲流一次读写一个字符
private static void method3(String srcString,String destString)
throws IOException {
BufferedReader br = new BufferedReader(new FileReader(srcString));
BufferedWriter bw = new BufferedWriter(new FileWriter(destString)) ;
int ch;
while((ch = br.read())!=-1) {
bw.write(ch);
}
bw.close();
br.close();
}
//字符缓冲流一次读写一个字符数组
private static void method4(String srcString,String destString)
throws IOException {
BufferedReader br = new BufferedReader(new FileReader(srcString));
BufferedWriter bw = new BufferedWriter(new FileWriter(destString)) ;
int len;
char [] c = new char[1024];
while((len = br.read(c))!=-1) {
bw.write(c,0,len);
}
bw.close();
br.close();
}
//字符缓冲流一次读写一个字符串
private static void method5(String srcString,String destString)
throws IOException {
BufferedReader br = new BufferedReader(new FileReader(srcString));
BufferedWriter bw = new BufferedWriter(new FileWriter(destString)) ;
String line = null;
while((line = br.readLine())!= null) {
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
转载地址:http://ohrii.baihongyu.com/