2015-05-19 83 views
-3

我試圖從類似於一個文本文件閱讀: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... 
+0

沒有代碼沒有任何幫助。 –

+2

*我試圖使用掃描儀*張貼你有什麼試圖和問題在哪裏 – Blip

+0

我已經這樣做了我的編輯 – rrr11222333

回答

2

我會做這樣的事情:

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)(或任何文件的字符集是...)

+0

我似乎無法使用掃描儀的「readline方法」? – rrr11222333

+1

以及你如何獲得你想要的邏輯,如果你想要精確的代碼,你應該試着理解'Scanner' api並查看哪些方法可以使用。例如''readline''表示'nextLine()'和'hasnext()'表示'hasNextLine()'。 –

0

請搜索一點點更找到出這樣一個簡單的答案...

Cave of Programming exemple

我會嘗試這樣的事:

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(); 
}