这里有初学者问题。此方法应从文本文件中读取一行,删除空格(并执行其他操作)并将该行打印到另一个文件。但是,当我打电话时:
noWhiteSpace(words.txt, clean.txt);
它不会读取文件的内容。它只是将输入文件的名称写入新的输出文件:ie" clean.txt"包含字符串" words.txt"没有别的。我很困惑。
public static void noWhiteSpace(String inputFileName, String outputFileName) throws FileNotFoundException {
Scanner inFile = new Scanner(inputFileName);
PrintStream outFile = new PrintStream(outputFileName);
while (inFile.hasNext()) {
String line = inFile.nextLine(); // read a line
line = line.trim(); // eliminate the white space
outputFile.println(line); // print line to output file
}
}
答案 0 :(得分:2)
Scanner
的构造函数采用String
参数并不符合您的想法。我想你想要的东西:
File file = new File(inputFileName);
try {
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
// the rest of your code here
}
sc.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
阅读Scanner API上的javadoc。
/* Constructs a new Scanner that produces values scanned from the specified string.
Parameters:
source - A string to scan
*/
public Scanner(String source)
答案 1 :(得分:0)
您需要将File实例传递给Scanner实例,而不是文件名。
文件文件=新文件("路径/到/ file / on / disk"); 扫描仪inFile =新扫描仪(文件);
然后从扫描仪读取,如inFile.nextLine()等。