创建允许用户在 Java 中向其添加 CSV 文件的扫描仪
Creating a scanner that allows user to add CSV file to it in Java
我正在尝试创建一个服务来解析 CSV 文件的每一行并为每一行的字符串运行各种布尔值。一切正常,但我设置它的方式是用户复制 CSV 文件中的文本并将其粘贴到扫描仪中。我想这样做,以便用户可以在代码为 运行.
时添加 CSV 文件
我现在的设置方式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner exampleString = new Scanner(System.in);
do {
String checkString = exampleString.nextLine();
boolean testOne = checkString.contains("Text from CSV line");
if(testOne){
String removingExtraCharacters = checkString.replaceAll
(" [^\d.$]", "");
System.out.println(removingExtraCharacters);
}
}while (exampleString.hasNextLine());
exampleString.close();
}
}
我研究了使用 Scanner(File()) 方法,但我只能弄清楚如何在 运行 代码之前将文件放入其中。
有没有办法让它在代码 运行?
之后要求用户将文件添加到扫描仪
您可以使用扫描程序执行的操作是询问新 CSV 文件的目的地,将其解析为字符串并使用 FileReader 读取文件内容。
例如:
Scanner scanner = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter .csv filepath");
String filepath = scanner.nextLine();
List<String> contents = Files.readAllLines(Paths.get(filepath));
但是您必须更改部分代码才能使其正常工作。由于 Paths.get(filepath)
仅从您启动终端的目录(同一文件夹)查找。
当你 运行 将 text.txt
(或 csv 之类的文件)作为输入时,它将获取文件的所有行并将其放入列表。
这对你有用吗?
我正在尝试创建一个服务来解析 CSV 文件的每一行并为每一行的字符串运行各种布尔值。一切正常,但我设置它的方式是用户复制 CSV 文件中的文本并将其粘贴到扫描仪中。我想这样做,以便用户可以在代码为 运行.
时添加 CSV 文件我现在的设置方式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner exampleString = new Scanner(System.in);
do {
String checkString = exampleString.nextLine();
boolean testOne = checkString.contains("Text from CSV line");
if(testOne){
String removingExtraCharacters = checkString.replaceAll
(" [^\d.$]", "");
System.out.println(removingExtraCharacters);
}
}while (exampleString.hasNextLine());
exampleString.close();
}
}
我研究了使用 Scanner(File()) 方法,但我只能弄清楚如何在 运行 代码之前将文件放入其中。 有没有办法让它在代码 运行?
之后要求用户将文件添加到扫描仪您可以使用扫描程序执行的操作是询问新 CSV 文件的目的地,将其解析为字符串并使用 FileReader 读取文件内容。
例如:
Scanner scanner = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter .csv filepath");
String filepath = scanner.nextLine();
List<String> contents = Files.readAllLines(Paths.get(filepath));
但是您必须更改部分代码才能使其正常工作。由于 Paths.get(filepath)
仅从您启动终端的目录(同一文件夹)查找。
当你 运行 将 text.txt
(或 csv 之类的文件)作为输入时,它将获取文件的所有行并将其放入列表。
这对你有用吗?