Java:从文本文件中读取内容以创建对象



我正在尝试从类似的文本文件中读取:

exampleName1 exampleAddress1
exampleName2 exampleAddress2

如何通过读取文本文件中的每一行来创建具有名称和地址的对象?

E.g: Record record1= new Record(name, address);

我已经尝试使用Scanner,但我不确定如何准确。

Scanner myscanner= new Scanner (new FileInputStream(myfile.txt);
while (myscanner.hasnext()){
//read from file?
}
//create object here...

我会这样做:

List<Record> records = new ArrayList<>();
Scanner myscanner= new Scanner (new FileInputStream("myfile.txt"));
while (myscanner.hasnext()){
  String line = myscanner.readline();
  int index = line.indexOf(' ');
  String name = line.substring(0, index-1);//TODO check...
  String address = line.substring(index);
  records.add(new Record(name, address);
}

未经测试的代码,但应该工作(以某种方式)。如果你有问题,请更具体地提出问题。

编辑:当然扫描器没有readline()。顺便说一句。为什么要使用扫描仪?使用BufferedReader和适当的InputStreamReader,您可以做到这一点。

Edit2:我的意思是,你像这样传递文件的字符集:new InputStreamReader("filename", StandardCharsets.UTF_8)(或文件的字符集…)

请再多搜索一点,找到这样一个简单的答案…

编程实例

我会尝试这样做:

try {
    String line;
    String[] splitedLine;
    String name;
    String address;
    BufferedReader br = new BufferedReader(new FileReader("myfile.txt"));
    while((line=br.readLine()) != null) {
        splitedLine = line.split(' ');
        name = splitedLine[0];
        address = splitedLine[1];
        new Record(name,address);
        //You could also do new Record(splitedLine[0],splitedLine[1]);
    }
} catch (IOException e) {
    e.printStackTrace();
}

相关内容

  • 没有找到相关文章

最新更新