Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将包含整数数据的文件内容从一个文件复制到另一个文件_Java - Fatal编程技术网

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

Java 将包含整数数据的文件内容从一个文件复制到另一个文件,java,Java,我已经创建了一个名为random.txt的文件 我的工作是从该文件获取输入,使用ObjectOutputStream将其存储到另一个文件中 我已经为此编写了代码,但出现以下错误: Exception in thread "main" java.io.EOFException at java.io.DataInputStream.readInt(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.rea

我已经创建了一个名为
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 !!!");
  }
}

您最好在Java7或更高版本中使用
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