繁体   English   中英

复制文件内容包含从一个文件到另一个文件的整数数据

[英]copy file content contain integer data from one file to another

我创建了一个名为random.txt文件。

我的工作是从该文件中获取输入,然后使用ObjectOutputStream将其存储到另一个文件中。

我已经为此编写了代码,但出现了以下错误:

Exception in thread "main" java.io.EOFException
    at java.io.DataInputStream.readInt(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source)
    at java.io.ObjectInputStream.readInt(Unknown Source)
    at SortingNumberFile.main(SortingNumberFile.java:13)

我的代码是:

import java.util.*; 
import java.io.*;

public class SortingNumberFile {
  public static void main(String []args) throws IOException {
    FileInputStream fis = new FileInputStream("D:\\Programs\\AJP\\random.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    File f = new File("D:\\Programs\\AJP\\sort.txt");
    FileOutputStream fos = new FileOutputStream(f);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    int i;

    while ((i=ois.readInt())!=-1) {
      oos.writeInt(i);
      System.out.println(i);
    }

    fis.close();
    ois.close();
    fos.close();
    oos.close();

    System.out.println("Done !!!");
  }
}

您最好对Java 7或更高版本中的try with resources使用try with resources以消除许多异常处理负担。 解决方案之一可以是:

    try (Scanner scanner = new Scanner(new File(inputPath));
         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outputPath))) {
         while (scanner.hasNextInt()) {
            int a = scanner.nextInt();
            bufferedWriter.write(String.valueOf(a) + "\n"); 
            // seems you're using Windows, so it should be replace with \r\n perhaps;
            System.out.println(a);
        }
    }
    System.out.println("Done !!!");

测试数据(相同的输入格式和输出格式):

1
2
3
4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM