我有个问题。我正在尝试读取一个文本文件,其中包含由空格分隔的值(我认为类似于CSV )。
我能够接受输入文件,但我不知道如何分割它,以便每个“值”进入不同的字段。
下面,查找我所做的代码部分。
String error = ("Content could not be read. Error loading JFileChooser. Try again.");
String content = null;
JFileChooser chooser = new JFileChooser(); //Displays graphical UI to choose the file
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
try {
content = new String(Files.readAllBytes(Paths.get(selectedFile.getPath())));
} catch (Exception IOException) {
IOException.printStackTrace();
out.println("Error!");
}
//return values read in from file.
Scanner sc = new Scanner(in);
sc.useDelimiter("[^A-Za-z]+"); //regular expression
//return content for use l8r on in the program...
out.println(content); //test to see if reads in correctly
return content;
} else
return error;这是一个示例输入,文件将包含:
乔治·Paradise_3 1 2 50 0
1 3 50 0约翰Somewhere_4
简·魔鬼之地1 4 50 0
乔治·Paradise_13 2 50 60 0
2 50 60 0约翰Somewhere_14
简·魔鬼之家2 60 60 13
3 10 10 50 0乔治·Paradise_23
3 15 20 40 0约翰Somewhere_24
简·魔鬼之家20 30 55 0
任何帮助都是非常感谢的。
谢谢!
发布于 2017-10-10 09:40:45
我将使用BufferedReader来读取文件,而不是将整个内容加载到字符串中:
File selectedFile = chooser.getSelectedFile();
try (InputStream stream = new FileInputStream(selectedFile);
Reader reader = new InputStreamReader(stream, "UTF-8"); // or whatever
BufferedReader in = new BufferedReader(reader)) {
String line = in.readLine();
while (line != null) {
String[] fields = line.split("\\s");
doSomethingWith(fields);
line = in.readLine();
}
}https://stackoverflow.com/questions/46663200
复制相似问题