逐行阅读 java



>我有一个文本文件,看起来像这样:

1 
2 3
4 5
6 7

我想要 2 个字符串,它们是同一行的值。例:

字符串

s1 将为 2,字符串 s2 将为 3

我试过这样:

    File file = new File("e:\read.txt");
    if (file.exists()){
     FileReader fr = new FileReader(file);
     LineNumberReader ln = new LineNumberReader(fr);
        while (ln.getLineNumber() == 0){
            s=Integer.parseInt(ln.readLine());
         System.out.println(s);
        }
        DisjointSetLinkedList dsj=new DisjointSetLinkedList();
        while(ln.getLineNumber()>0)
        {
           String [] tokens = ln.readLine().split(" ");
           s1=tokens[0];
           System.out.println( s1);
        }

我必须在同一行上的 2 个字符串之间建立联合:

我认为这样更容易:

    try {
        File file = new File("numbers.txt");
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        String line;
        while ((line = br.readLine())!= null) {
            String[] tokens = line.split("\s");
            System.out.println(Arrays.toString(tokens));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

将第二个循环更改为:

    String line = null;
    while ((line = ln.readLine()) != null) {
        String[] tokens = line.split(" ");
        String s1 = tokens[0];
        String s2 = tokens[1];
        System.out.println("s1 = " + s1 + " s2 = " + s2);
    }

否则,在尝试访问最后一行时,您将遇到NullPointerException ln.readLine() .

您也不需要while loop阅读第一行,只需阅读一次即可。

如果你有token[0]作为整个第一行,你可以像这样联合

for(int i=2; i<token.length;i+2)
   System.out.println("UNION: "+Union(token[i-2], token[i]));

相关内容

  • 没有找到相关文章

最新更新