带字符串参数的java调用方法

时间:2016-03-02 18:39:31

标签: java methods static-methods

这里有初学者问题。此方法应从文本文件中读取一行,删除空格(并执行其他操作)并将该行打印到另一个文件。但是,当我打电话时:

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
    }
}

2 个答案:

答案 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()等。