1

如何将文件中的句子存储到字符串中,然后将由数字组成的下一行存储到字符串中?

当我使用 hasNextline 或 nextLine 时,它​​们都不起作用。我感到很困惑。

     Scanner kb = new Scanner(System.in);
     String secretMessage = null;
     String message, number = null;
     File file = new File(System.in);
     Scanner inputFile = new Scanner(file);

     while(inputFile.hasNext())
     {
           message = inputFile.nextLine();
           number = inputFile.nextLine();
     }


     System.out.println(number + "and " + message);
4

2 回答 2

0

我从文件中读取行的一个建议是使用 Files.readAllLines() 方法。

import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class Display_Summary_Text {

public static void main(String[] args)
{
    String fileName = "//file_path/TestFile.txt";

    try
    {
        List<String> lines = Files.readAllLines(Paths.get(fileName), Charset.defaultCharset());
        String eol = System.getProperty("line.separator");
        for (int i = 0; i <lines.size(); i+=2)
        {
            System.out.println(lines.get(i).toString() + "and" + lines.get(i+1) + eol);
        }
    }catch(IOException io)
    {
        io.printStackTrace();
    }
}
}

使用此设置,您还可以创建一个 stringBuilder 和 Writer,以便在需要时非常简单地将输出保存到文件中。

于 2014-10-16T17:17:55.207 回答
0

您正在遍历整个文件,覆盖您的messagenumber变量,然后只在最后打印一次。像这样在循环内移动你的打印语句,这样它就会打印每一行。

       while(inputFile.hasNext())
       {
           message = inputFile.nextLine();
           number = inputFile.nextLine();
           System.out.println(number + "and " + message);
       }
于 2013-10-07T01:09:45.573 回答