import java.io.*;
public class BufferedTest
{
public static void main(String args[]) throws IOException
{
File f=new File("JPA学习笔记.doc");
File fc=new File("副本.doc");
FileInputStream fis=new FileInputStream(f);
InputStreamReader isr=new InputStreamReader(fis,"UTF-16");
BufferedReader br=new BufferedReader(isr);
FileOutputStream fos=new FileOutputStream(fc);
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-16");
BufferedWriter bw=new BufferedWriter(osw);
String s=br.readLine();
while(s!=null)
{
bw.write(s);
bw.newLine();
bw.flush();
s=br.readLine();
}
br.close();
isr.close();
fis.close();
bw.close();
osw.close();
fos.close();
}
}
本人想采用以上代码实现word文件的复制功能,但复制后的文件总是乱码,而且字节数目与源文件有偏差,
请高手指出错误之处。几种编码方式都试过了,就是不行。
public class BufferedTest
{
public static void main(String args[]) throws IOException
{
File f=new File("JPA学习笔记.doc");
File fc=new File("副本.doc");
FileInputStream fis=new FileInputStream(f);
InputStreamReader isr=new InputStreamReader(fis,"UTF-16");
BufferedReader br=new BufferedReader(isr);
FileOutputStream fos=new FileOutputStream(fc);
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-16");
BufferedWriter bw=new BufferedWriter(osw);
String s=br.readLine();
while(s!=null)
{
bw.write(s);
bw.newLine();
bw.flush();
s=br.readLine();
}
br.close();
isr.close();
fis.close();
bw.close();
osw.close();
fos.close();
}
}
本人想采用以上代码实现word文件的复制功能,但复制后的文件总是乱码,而且字节数目与源文件有偏差,
请高手指出错误之处。几种编码方式都试过了,就是不行。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class BufferedTest1 {
public static void main(String args[]) throws IOException { File f = new File("E:\\详细设计补充文档.doc");
File fc = new File("E:\\详细设计补充文档1.doc");
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(fc);
byte[] b = new byte[256];
int length ;
while((length=fis.read(b))!=-1){
fos.write(b);
}
fos.flush();
fis.close();
fos.close();
System.out.println("Success!");
}
}
InputReader / OutputWriter 是面向字符流。如果你的处理要求二进制格式,就不可能用字符流而必须是字节流。