2016-03-25 22 views
0

使用扫描仪,我不知道如何读取多行文件并将其全部存储到字符串。我喜欢用一个循环:如何从文件存储多行到扫描器字符串`

while(file.hasNext()) 
{ 
    string += file.nextLine(); 
} 

我发现file.hasNext方法吃掉了所有的数据文件等file.nextInt()不具有任何价值发现,所以它并返回错误。我能做些什么来“重置”扫描仪?我试图创建一个新的扫描仪对象,但没有改变任何东西。我必须通过一个方法来运行这个字符串,而且我已经遇到过很多次这个问题。我该怎么办?

+0

'扫描器#hasNext( )'什么都不吃,请发表[mcve](http://stackoverflow.com/help/mcve)这个味道像http://stackoverflow.com/questions/13102045/skipping-nextline-after-using- next-nextint-or-other-nextfoo-methods –

+0

什么错误你懂吗? – bili

回答

1

也许你应该试试StringBuilder。

StringBuilder builder = new StringBuilder(); 
try (BufferedReader br = new BufferedReader(new FileReader(file))) { 
    String line; 
    while ((line = br.readLine()) != null) { 
    builder.append(line); 
    // process the line. 
    } 
} 

String text = builder.toString(); 
0

要读取扫描仪源的全部内容为一个字符串,设置扫描仪的分隔符的文件的末尾:

String contents = file.useDelimiter("\\Z").next();