处理Java中现有文本文件中的字段

时间:2018-07-11 09:00:11

标签: java java-io

我对Java还是比较陌生,并且已经分配了一些听起来像这样的家庭作业:

来自文本文件,该文本文件具有以下模式的x行文本:

一个整数||字符串||另一个字符串,定义一个类,该类将从.txt文件中反序列化这些字段,并将它们转换为模型集,这些模型是我需要处理的字段,然后将它们序列化回.txt文件。

我仍然无法从已有的大约100行的文本文件中了解如何做到这一点。

有人可以给我提示或我可能错过的文章吗?

1 个答案:

答案 0 :(得分:0)

假设您的txt文件中的内容如下:

1||a||b
2||text||more text

您会这样阅读:

public class FileReader {

    public static void main(String[] args) {

        String csvFile = "/path/to/input/file.txt";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = "||";
        List<Model> modelList = new ArrayList<Model>();

        try {

            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {

                // use comma as separator
                String[] line = line.split(cvsSplitBy);

               Model model = new Model(Integer.valueOf(line[0]), line[1], line[2]);
               modelList.add(model)

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    class Model {
        private int intValue;
        private String stringValue1;
        private String stringValue2;

        public Model(int intValue,
        String stringValue1,
        String stringValue2) {
            this.intValue = intValue;
            this.stringValue1 = stringValue1;
            this.stringValue2 = stringValue2;
        }

        //getters
    }

}

此代码基于this tutorial

一旦有了模型列表,就很容易生成字符串列表,然后将其写入文件。