import java.io.*;
public class ReadFile {
public static void main(String args[]){
ReadFile rf=new ReadFile();
try{
rf.copy("d:\\fusion32.rar","d:\\32.rar");
}
catch(Exception e){
e.printStackTrace();
}
}
public void copy(String fileName,String copyFileName) throws Exception{ BufferedReader reader=new BufferedReader(new FileReader(fileName));
BufferedWriter writer=new BufferedWriter(new FileWriter(copyFileName));
String str=null;
str=reader.readLine();
while(str!=null)
{
writer.write(str+"\r\n");
str=reader.readLine();
}
reader.close();
writer.close();
}
}拷贝的rar文件不能打开,长度有问题,请问是怎么回事?
如果有FileInputStream,FileOutputStream就没有问题。
public class ReadFile {
public static void main(String args[]){
ReadFile rf=new ReadFile();
try{
rf.copy("d:\\fusion32.rar","d:\\32.rar");
}
catch(Exception e){
e.printStackTrace();
}
}
public void copy(String fileName,String copyFileName) throws Exception{ BufferedReader reader=new BufferedReader(new FileReader(fileName));
BufferedWriter writer=new BufferedWriter(new FileWriter(copyFileName));
String str=null;
str=reader.readLine();
while(str!=null)
{
writer.write(str+"\r\n");
str=reader.readLine();
}
reader.close();
writer.close();
}
}拷贝的rar文件不能打开,长度有问题,请问是怎么回事?
如果有FileInputStream,FileOutputStream就没有问题。
InputStream/OutputStream是字节流
Reader/Writer是字符流字节流可以读取任何文件(文件本身是字节构成的)
字符流试图使用一种编码(比如GBK)把字节转成字符,如果不是文本文件的话,就会有乱码使用readLine就一塌糊涂了
你把字节转换成字符了比如原来的数据是 0xAABBCC 字节数组就是 0xAA 0xBB 0xCC
但是你转成字符就变成了 三个字 文字1 文字2 文字3