扫描文本文件中的字符串,如果找到,则使用该字符串创建新的txt文件

时间:2017-01-22 16:26:04

标签: java bufferedwriter

所以我要做的是扫描txt文件中的String,如果找到String,则需要创建一个新的txt文件,{{1}写进去。 {/ 1}},即将要搜索的txt文件的名称和将要/可以创建的txt文件都将通过命令行输入。

String

我尝试做的是创建一个while循环,扫描原始文本文件中的字符串,如果找到该字符串,则创建一个txt文件并在其中输入该字符串。

目前正在进行的是扫描原始文件(我使用System.out.println进行了测试),但无论String是否在原始文本中,都会创建带有字符串的新文件 - 文件与否。

1 个答案:

答案 0 :(得分:0)

基本上,您刚刚以错误的方式使用过扫描仪。你需要这样做:

String searchTerm = args[0];
String fileName1 = args[1];
String fileName2 = args[2];
File file = new File(fileName1);

Scanner scan = new Scanner(file);
if (searchTerm != null) { // don't even start if searchTerm is null
    while (scan.hasNextLine()) {
        String scanned = scan.nextLine(); // you need to use scan.nextLine() like this
        if (scanned.contains(searchTerm)) { // check if scanned line contains the string you need
            try {
                BufferedWriter bw = Files.newBufferedWriter(Paths.get(fileName2));
                bw.write(searchTerm);
                bw.close();
                break; // to stop looping when have already found the string
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }
}
scan.close();