有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将文件中的多行存储到扫描仪中的字符串中`

使用Scanner,我不知道如何读取多行文件并将其全部存储到字符串中。我使用一个循环,比如:

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

我找到了文件。hasNext方法会吃掉文件中的所有数据,所以文件会被删除。nextInt()没有任何要查找的值,因此返回并出错。如何“重置”扫描仪?我尝试创建一个新的扫描仪对象,但没有改变任何事情。我必须通过一个方法运行这个字符串,我已经多次遇到这个问题。我该怎么办


共 (2) 个答案

  1. # 1 楼答案

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

    String contents = file.useDelimiter("\\Z").next();
    
  2. # 2 楼答案

    也许你应该试试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();