扫描文本文件中的字符串,如果找到,则使用该字符串创建新的 txt 文件
Scan text file for a string, if found, create new txt file with that string
所以我想做的是扫描一个 String
的 txt 文件,如果找到 String
,则需要创建一个新的 txt 文件并且 String
写入其中。 String
、要搜索的txt文件名和will/can创建的txt文件名,都是通过命令行输入的。
public class FileOperations {
public static void main(String[] args) throws FileNotFoundException {
String searchTerm = args[0];
String fileName1 = args[1];
String fileName2 = args[2];
File file = new File(fileName1);
Scanner scan = new Scanner(file);
while (scan.hasNextLine()) {
if (searchTerm != null) {
try {
BufferedWriter bw = null;
bw = Files.newBufferedWriter(Paths.get(fileName2), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
bw.write(searchTerm);
bw.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
scan.nextLine();
}
scan.close();
}
}
我尝试做的是创建一个 while 循环来扫描原始文本文件中的字符串,如果找到该字符串,则创建一个 txt 文件并将该字符串输入其中。
目前正在扫描原始文件(我用 System.out.println 测试过),但是无论 String
是否在原始文件中,都会创建带有字符串的新文件txt 文件与否。
基本上,您只是用错了扫描仪。你需要这样做:
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();
所以我想做的是扫描一个 String
的 txt 文件,如果找到 String
,则需要创建一个新的 txt 文件并且 String
写入其中。 String
、要搜索的txt文件名和will/can创建的txt文件名,都是通过命令行输入的。
public class FileOperations {
public static void main(String[] args) throws FileNotFoundException {
String searchTerm = args[0];
String fileName1 = args[1];
String fileName2 = args[2];
File file = new File(fileName1);
Scanner scan = new Scanner(file);
while (scan.hasNextLine()) {
if (searchTerm != null) {
try {
BufferedWriter bw = null;
bw = Files.newBufferedWriter(Paths.get(fileName2), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
bw.write(searchTerm);
bw.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
scan.nextLine();
}
scan.close();
}
}
我尝试做的是创建一个 while 循环来扫描原始文本文件中的字符串,如果找到该字符串,则创建一个 txt 文件并将该字符串输入其中。
目前正在扫描原始文件(我用 System.out.println 测试过),但是无论 String
是否在原始文件中,都会创建带有字符串的新文件txt 文件与否。
基本上,您只是用错了扫描仪。你需要这样做:
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();