Java使用数组读取.txt文件并保存

时间:2016-02-24 16:13:19

标签: java

好的,这是相当长的一段时间,但我到处都是,我仍然不确定如何做到这一点。这是课堂布局中的学生信息列表。该程序用于让孩子选择一个座位,但一旦他们选择了座位,它就应该有状态更新,以便其他人无法接受。

栏目解释 - (1)学生编号顺序(2)男/女(3)靠窗座位/过道座位(4)有/无桌子(5)前座/后座(6)轻松进入座椅< / p>

.txt文件;

01 2 true false true false

02 2 false false true false

03 1 true false true true

04 2 false false true true

05 1 true true true false

我知道他们完全没有意义,但这仅仅是一个例子。

如何让程序使用数组读取这些行中的每一行来存储所有这些信息?对于儿童1,2,3的座位等.txt文件确切地表示如上所述的座位类型。一旦数组读完,我希望它能够保存每一行。

3 个答案:

答案 0 :(得分:0)

如果您只想读取文件并将每一行分别存储在一个数组中,您可以执行以下操作。请注意,由于您不知道将获得多少行,因此无法预先创建数组。

String[] result;
ArrayList<String> lines = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader("path"))) {
    while (reader.ready()) {
        lines.add(reader.readLine());
    }
} catch (IOException e) {
    // proper error handling
}
result = lines.toArray(new String[lines.size()]);

或者,如果您希望能够直接访问列:

String[][] result;
ArrayList<String[]> lines = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader("path"))) {
    while (reader.ready()) {
        lines.add(reader.readLine().split(" ");
    }
} catch (IOException e) {
    // proper error handling
}
result = lines.toArray(new String[lines.size()][]);

for(String[] lineTokens) {
  String studendNumber = lineTokens[0];
  boolean gender = Boolean.parseBoolean(lineTokens[1]);
  ...
}

答案 1 :(得分:-1)

让我们说你的文件名是students.txt 所有你需要做的就是读取数据并将其存储到一个字符串数组中,以便以后使用它来解决这个问题:

BufferedReader in  = new BufferedReader(new FileReader("students.txt"));
String[][] data  = new String[][6];
int i = 0;
while(in.ready()){
data[i] = bf.readLine().split(" ");//use whatever is separating the data
i++;
}

答案 2 :(得分:-1)

如果您只想阅读java中的文本文件,请查看:Reading a plain text file in Java

不能保存每一行,它是一个文件,而不是数据库。因此,加载文件,根据需要更改数据,保存。

您还应该考虑格式......可以使用XML,JSON或CSV格式来存储数据。有些库可以为你完成大部分工作......

如果您计划并行访问您的程序数据(多个程序实例和用户,只有一个数据文件),那么简单的文本文件就是您需要的错误解决方案。