【问题标题】:Reading textfile into 2d array JAVA将文本文件读入二维数组 JAVA
【发布时间】:2016-10-21 19:44:47
【问题描述】:

我正在尝试读取一个给定的包含一堆双打的文本文件,该文本文件看起来像这样(每行之间没有空格):

0, 0.007133248, 0.003747135, 0.0034464097, 0.009517824, 0.0036065334, 0.007921185, 0.0041013476

1、0.006223865、5.804103E-4、5.6967576E-4、0.008850083、0.003269921、 3.7322243E-4, 0.0011008179

2、0.0051101227、0.008973722、0.0013274436、0.00922496、0.0050817304、 0.004631279, 0.0069321943

基本上 1000 行有 8 列,并且我试图将其转换为二维数据数组 [1000][8],但无法遍历数据尽管。这是我到目前为止所拥有的,任何帮助将不胜感激!

  public static void readFile2() throws IOException{

    Double[][] data = new Double[1000][8];
    int row = 0;
    int col = 0;
    Scanner scanner = null;
    scanner = new Scanner(new BufferedReader(new FileReader("/Users/Roman/Documents/workspace/cisc124/Logger (1).csv")));

    while (scanner.hasNext() && scanner !=null) {
        scanner.useDelimiter(",");
        while(row<data.length && col<8){
        data[row][col] = Double.parseDouble(scanner.next());
        col++;
        //System.out.print(Arrays.deepToString(data));

    }
    col=0;
    row++;
    }
    System.out.println(Arrays.deepToString(data));
    scanner.close();
}

【问题讨论】:

  • 您对哪些代码有问题?当你运行它时会发生什么?你期望会发生什么?

标签: java arrays 2d bufferedreader readfile


【解决方案1】:

逐行读取文件会更方便..

String[] data = new String[1000];
int row = 0;
try {
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "utf-8"));         

    String line;
    while ((line = br.readLine()) != null) {
        data[row]= line;
        row++;
    }
    br.close();

} catch (IOException e) {
    e.printStackTrace();
}

最后做同样的事情

System.out.println(Arrays.ToString(data));

或者如果您需要给定索引处的元素,则拆分一行并使用Double.parse();

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2014-04-15
    • 2021-12-19
    相关资源
    最近更新 更多