首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中分割CSV文本文件并将数据输入不同的类字段

在Java中分割CSV文本文件并将数据输入不同的类字段
EN

Stack Overflow用户
提问于 2017-10-10 09:26:44
回答 1查看 42关注 0票数 0

我有个问题。我正在尝试读取一个文本文件,其中包含由空格分隔的值(我认为类似于CSV )。

我能够接受输入文件,但我不知道如何分割它,以便每个“值”进入不同的字段。

下面,查找我所做的代码部分。

代码语言:javascript
运行
复制
 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

任何帮助都是非常感谢的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 09:40:45

我将使用BufferedReader来读取文件,而不是将整个内容加载到字符串中:

代码语言:javascript
运行
复制
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();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46663200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档