已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
昨天关门了。
Improve this question
程序应该询问用户输入文件名和输出文件名。然后,它应该将输入文件作为文本文件打开(使用try块检查输入文件是否存在),并逐行读取内容。它还应该以文本文件的形式打开输出文件,并将输入文件中的行写入其中,以从1开始的行号作为前缀。因此,如果名为“fred.txt”的输入文件包含:
你好
我是弗雷德。
我是ICT167的学生。
再见
用户输入“fred.txt”和“fredNum.txt”,然后运行程序后“fredNum.txt”将包含如下内容:
1您好,
2
3我是弗雷德。
4我在ICT167注册。
5
6再见
最后,程序应该在屏幕上显示你的名字,输出文件的名称,然后是输入文件的总行数,总字数和总字符数。对于上述输入文件,屏幕将显示以下内容:
我叫乔·布洛格斯
输出文件的名称= fredNum.txt
fred.txt中的总行数= 6
fred.txt中的总字数= 10
fred.txt中的字符总数= 43
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadInputFile {
public static void main(String[] args) {
System.out.println("My Name = David");
System.out.println("Enter file name:");
Scanner Keyboard = new Scanner(System.in);
String fileName = Keyboard.next();
System.out.println("Name of Output file " + fileName);
Scanner inputStream = null;
System.out.println("The file " + fileName + " contains the following lines:");
try {
inputStream = new Scanner(new File(fileName));
} catch (FileNotFoundException e) {
System.out.println("Error opening the file " + fileName);
System.exit(0);
}
while (inputStream.hasNextLine()) {
String line = inputStream.nextLine();
System.out.println(line);
}
inputStream.close();
} // end main
}
1条答案
按热度按时间gywdnpxw1#
您当前只要求输入一个文件名。
您可以添加另一个变量和输入。
你已经有了这个,它工作正常。
要写文件,可以使用 * FileWriter * 类。
您可以将赋值放在 * try-finally * 块中,以确保它正确关闭。
而且,你也可以在这里关闭 * inputStream *。
对于行数,只需创建一个新变量来保存值,并在 * while-loop * 中将其递增 * 1 。
要计算单词的数量,您可以使用 * String #split * 方法返回一个 * String * 数组,使用 * 空格 * 作为分隔符。
例如,这将返回 "I am Fred." 作为三个字符串的数组,"I"、"am"* 和 "Fred."。
要计算字符数,可以使用 * String #toCharArray * 方法获取值。
下面是完整的代码。
下面是一个输入和输出的例子。
这里是 * fredNum.txt * 的内容。