文件复制乱码有关问题
文件复制乱码问题
FileInputStream fis = new FileInputStream("b.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("copy_b.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
int i = -1;
while((i = isr.read()) != -1){
System.out.print((char)isr.read());
osw.write(i);
}
isr.close();
osw.close();
复制后的文件乱码,请各位高手帮我看看是哪里的问题,谢谢!
------解决方案--------------------
------解决方案--------------------
大哥,你写入的是i
不是字节数组。。。
------解决方案--------------------
InputStreamReader的read()方法返回的是一个字符。
楼主的代码读一个字符判断是否-1,丢弃,再读一个写入输出流。
------解决方案--------------------
读的char,会有字符集问题,
改用ByteArrayInputStream 读 byte 就好了
------解决方案--------------------
直接使用FileChannel的transferFrom 或 transferTo 复制
FileInputStream fis = new FileInputStream("b.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("copy_b.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
int i = -1;
while((i = isr.read()) != -1){
System.out.print((char)isr.read());
osw.write(i);
}
isr.close();
osw.close();
复制后的文件乱码,请各位高手帮我看看是哪里的问题,谢谢!
乱码
复制文件
------解决方案--------------------
Reader r = new BufferedReader(new InputStreamReader(in, System.getProperty("file.encoding")));
Writer w = new BufferedWriter(new OutputStreamWriter(out, System.getProperty("file.encoding")));
------解决方案--------------------
大哥,你写入的是i
不是字节数组。。。
------解决方案--------------------
InputStreamReader的read()方法返回的是一个字符。
楼主的代码读一个字符判断是否-1,丢弃,再读一个写入输出流。
------解决方案--------------------
读的char,会有字符集问题,
改用ByteArrayInputStream 读 byte 就好了
------解决方案--------------------
直接使用FileChannel的transferFrom 或 transferTo 复制