【发布时间】:2013-06-09 22:34:01
【问题描述】:
我正在尝试完成这项任务:
编写一个程序,读取一个文件并将该文件的副本写入另一个插入行号的文件。
到目前为止,我已经写了这么多代码:
import java.io.*;
import java.util.Scanner;
public class Question43
{
public static void main(String[] args) throws IOException
{
Scanner fileIn = new Scanner(new File("Assign4.txt") );
FileWriter fileOut = new FileWriter("FileOut.txt");
PrintWriter output = new PrintWriter(fileOut);
String []array = new String[10];
int indx = 0;
while(fileIn.hasNext( ) )
{
array[indx] = fileIn.nextLine( );
}
fileIn.close();
int num = 1;
for(int i =0; i < array.length; i++)
{
output.println(num+"\t"+array[i]);
}
}
}
当我点击运行时,我得到这个错误:
Exception in thread "main" java.io.FileNotFoundException: Assign4.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at Question43.main(Question43.java:8)
有人可以告诉我该怎么做吗?我应该将名为 Assign4 的文本文件放在哪里,以便 Eclipse IDE 可以读取它?另外,新文件会在哪里创建?
感谢您的帮助!
【问题讨论】:
-
除非您在项目树中指定另一个目录,否则 Eclipse 和 Java 期望该文件位于执行代码的 same 目录中。那么
Question43.java在哪个目录下? -
如果你的文本文件和你的类文件在同一个位置,你也可以尝试获取数据作为资源,
Scanner fileIn = new Scanner(Question43.class.getResourceAsStream("Assign4.txt")); -
@HunterMcMillen 谢谢!这成功了。但是输出的文件是空的。关于如何复制原始文件的内容并将其输出到输出文件中的任何建议?
-
编辑了我的答案以包含该问题。
-
@selig 感谢您的编辑。我很感激。但是,当我把 output.close();它不会复制整个文本。如果我把它放在 "output.println(num+"\t"+array[i]);" 之后,只需一行如果我放置 output.close();在该声明之前的任何时间,我都会得到一个空白文本文件。请问有什么解决办法吗?
标签: java input io output filereader