【问题标题】:How to read a .txt into an array如何将 .txt 读入数组
【发布时间】:2014-10-15 01:56:19
【问题描述】:

我想通过 Java 程序读取 .txt 文件。

说这是文本文件input.txt

abc, test, 1,2,3
abc
abcd 
test, 1, 2, 3

每一行代表一行,每个逗号分隔的值代表一列。

目前我的代码是:

BufferedReader br = new BufferedReader(new FileReader("input.txt"));
    int num = readLines();  //this function just returns the number of lines
    for (int i = 0; i < num; i++){
        textData[i] = br.readLine();
    }
br.close();

如果我打印数组,这将输出如上所示的文本文件。但我需要插入以逗号分隔的数组(也可以是其他字符,现在只需使用逗号)。所以这意味着输出将是数组中的[abc,test,1,2,3],[abc],[abcd],[test,1,2,3]。我应该如何进行?

感谢您的回复。更新: 由于我将我的 txt 文件放入数组列表中,

    [abc,test,1,2,3]
    [abc]
    [abcd]
    [test,1,2,3]

如何找到每行的元素个数?

【问题讨论】:

  • 你需要一个集合而不是数组,因为行的长度不同
  • 您的问题不清楚。您的代码输出与期望的输出有何不同?
  • 将行读入 ArrayList (正如@getlost 所指出的,您的数据是可变长度的,因此数据结构应该满足该要求),然后,当您需要访问每一行时,使用您的数组列表的 .get() 方法将每一行作为字符串访问并直接使用 .split()。

标签: java arrays file


【解决方案1】:

创建数组列表的数组列表:

BufferedReader br = new BufferedReader(new FileReader("input.txt"));
int lineCount = readLines();

ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>(lineCount);
for (int i = 0; i < lineCount; i++) {
    ArrayList<String> row = new ArrayList<String>();
    String line = br.readLine();
    for(String s: line.split(",")) {
        row.add(s);
    }
    rows.add(row);
}
br.close();

【讨论】:

  • 我得到“表达式的类型必须是数组类型,但它解析为 ArrayList>
  • 我认为这是因为我在 ArrayList 类型的对象上使用了 [] 运算符。我的 Java 有点生锈了!查看我的编辑。
猜你喜欢
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 2014-04-06
  • 1970-01-01
相关资源
最近更新 更多