我正在一个项目中,我们必须用一首诗或一首歌创建一个输入文件,并且应该使用该文件来创建一个程序,该程序创建一个输出文件,并用行号更新输入文件。这是一个示例:如果输入文件是:Mary有点小羊羔,则输出文件应类似于:/ * 1 * / Mary有点小羊羔。代码应为每一行执行此操作,以增加每一行的编号。下面是到目前为止的代码,但是我不确定下一步该怎么做。
package morrisJCh7Sec2;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class PoemTextFile {
public static void main(String args[]) throws FileNotFoundException {
File inputFile = new File("poem.txt");
Scanner input = new Scanner(inputFile);
PrintWriter outputFile = new PrintWriter("numpoem.txt");
outputFile.printf("Read in %s. \nWrote out %s.", inputFile, outputFile);
input.close();
outputFile.close();
}
}
这就是我的任务。我已经创建了文本文件,但是当我按现在的方式运行代码时,它说找不到我创建的文件。
使用诗歌或歌曲歌词创建文本文件。 (如果您无法想到 一首诗或一首歌,请使用玛丽的小羊羔。) 或文本文件一行上的歌曲。注意你的拼写 和标点符号。将此文件用作输入文件。编写代码以阅读 输入文件中的每一行。使用以下命令将每一行写入输出文件 行之前的行号。请务必遵循此示例 行号的格式。
这是我收到的错误:
线程“主”中的异常java.io.FileNotFoundException:poem.txt (系统找不到指定的文件)在 java.io.FileInputStream.open0(本机方法)位于 java.io.FileInputStream.open(未知源) java.io.FileInputStream。(未知源) java.util.Scanner。(未知源)在 morrisJCh7Sec2.PoemTextFile.main(PoemTextFile.java:11)
答案 0 :(得分:0)
您很近。 只需遍历文本行即可:
File inputFile = new File("poem.txt");
Scanner input = new Scanner(inputFile);
input.useDelimiter("\n");
PrintWriter outputFile = new PrintWriter("numpoem.txt");
int count = 0;
while(input.hasNext()) {
outputFile.print("/* " + count++ + " */ " + input.next() + "\n");
}
input.close();
outputFile.close();
定界符\n
(换行符)确保扫描程序读取的每个新数据块都是文本文件中的一行。 while循环运行,直到没有更多的行可供读取。然后,将行写入目标文件,使用计数变量添加行号,该计数变量每行增加++
。如果要从1
开始计数,只需更改count
的初始值即可。