使用Java从文件中读取特定的行和列

时间:2015-03-17 16:46:35

标签: java

我有一个文本文件,如下所示:

   A  B  C  D
A  5  7  10 2
B  1  5  4  20
C  10 1  8  4
D  5  7  4  2

所以它应该是一个矩阵,我想做的是:

1)获取矢量名称(可以通过读取第一行轻松完成)。

2)仅显示数字。

3)将数字存储在2D数组中。

我已经完成了第一步,仍然是第二步和第三步。

这是我的代码:

LectureFichier.java:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class LectureFichier {

    public void lireFichier() {

        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("myFile"));

            sCurrentLine = br.readLine();

            System.out.println("*******************Lignes*******************");

            String[] nomsAuteurs = sCurrentLine.split(" ");

            for(String auteur : nomsAuteurs) {
                System.out.println(auteur);
            }

            System.out.println("*******************Colonnes*******************");

            while ((sCurrentLine = br.readLine()) != null) {
                String[] colonnes = sCurrentLine.split(" ");
                for(String colonne : colonnes) {
                    System.out.println(colonne);
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }

}

Main.java:

public class Main {

    public static void main(String[] args) {

        LectureFichier lectureFichier = new LectureFichier();

        lectureFichier.lireFichier();

    }

}

当我运行此代码时,它会给我一个这样的结果:

A57102B15420C10184D5742

正是因为这个问题:

for(String colonne : colonnes) {
    System.out.print(colonne);
}

println(colonne)将每个拆分放在不同的行中。

我现在想要的是能够拥有这样的东西:

5  7  10 2
1  5  4  20
10 1  8  4
5  7  4  2

我做错了什么?我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:1)

你的代码应该是,

while ((sCurrentLine = br.readLine()) != null) {
            String[] colonnes = sCurrentLine.split(" ");
            for(int i=1; i<colonnes.length; i++ ) {
                System.out.print(colonnes[i]+ " ");
            }
            System.out.println(); 
        }

表示您期望的输出。

您应该在for循环中打印一行中的所有元素,然后为从该文件中读取的下一行打印换行符。