Object 在java中复制文件(未复制整个文件) 我正在尝试用Java将文本从一个文件复制到另一个文件。我知道我们可以一个字节一个字节地复制,但我想用字符串来实现!发生了什么?

Object 在java中复制文件(未复制整个文件) 我正在尝试用Java将文本从一个文件复制到另一个文件。我知道我们可以一个字节一个字节地复制,但我想用字符串来实现!发生了什么?,object,file-handling,object-oriented-analysis,Object,File Handling,Object Oriented Analysis,实际文件: 输出文件:如果使用Java7,可以使用Files.copysource.toPath、dest.toPath;因此,您不必读取该文件。或者使用FileUtils.copyFilesource,dest;来自ApacheCommonsIO import java.io.*; public class ReadFile { public static void main(String[] args) throws IOException { File

实际文件:


输出文件:

如果使用Java7,可以使用Files.copysource.toPath、dest.toPath;因此,您不必读取该文件。或者使用FileUtils.copyFilesource,dest;来自ApacheCommonsIO

import java.io.*;

public class ReadFile {

    public static void main(String[] args) throws IOException {

            File in = new File("in.txt");
            //File out = new File("out.txt");
            FileOutputStream fos= new FileOutputStream("o.txt");
            //PrintWriter fw= new PrintWriter(out);

            if(!in.exists())
            {
                in.createNewFile();
                //System.out.println("Hey");
            }

            FileReader is = new FileReader(in);
            BufferedReader br= new BufferedReader(is);


            while(true)
            {
                if(in.canRead())
                {
                    try {
                        System.out.println(br.readLine());
                        fos.write((br.readLine()).getBytes());
                    } catch (Exception e) {
                        // TODO Auto-generated catch block

                        fos.close();
                        br.close();

                        System.out.println("Im breaking");                      
                        break;

                    }
                }
                else
                {
                    fos.close();                    
                    System.out.println("closed");
                    break;
                )   

            }
    }
}
//end of file

读一行,打印到标准输出 读另一行,写到fos 因此,输出文件中可能缺少一些行。此外,readLine会删除行终止字符。您需要自己将它们添加回。

fos.writebr.readLine+\n?
                    System.out.println(br.readLine());
                    fos.write((br.readLine()).getBytes());