我正在尝试从类似的文本文件中读取:
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();
}