什么时候用字节流,什么时候用字符流?
写了两个文件复制的程序:
第一个 :
使用FileInputStream,FileOutputStream 如下:
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
FileInputStream fis = new FileInputStream(in);
FileOutputStream fos = new FileOutputStream(out);
byte[] b = new byte[256];
while(fis.read(b)!=-1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help.bmp","g:\\help.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
第二个用BufferedReader,BufferedWriter 如下
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
BufferedReader fis = new BufferedReader(new FileReader(in));
BufferedWriter fos = new BufferedWriter(new FileWriter(out));
char[] b = new char[256];
while(fis.read()!= -1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help1.bmp","g:\\help11.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
结果,第一种方法生成的bmp与原来的一样,而第二种方法生成的bmp却无法打开?
请问是为什么?