gpt4 book ai didi

java - Java 中的数组和文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:08 26 4
gpt4 key购买 nike

所以我最近从 Python 转向学习 Java,但在让 2d 数组工作时遇到了困难。我设法从文件中读取内容并将文件中的文本附加到数组中。但我只设法将文件的内容作为一项写入数组。精通 Python 意味着我认为自己非常了解构造的工作原理,只是我正在努力调整执行此操作时使用的库/方法。

这是我想逐行拆分为数组的文本文件的内容。

    Mildred Bush 45 65 45 67 65 into [[Mildred Bush],[45],[65],[67],[65]]
Fred Snooks 23 43 54 23 76 etc.
Morvern Callar 65 45 34 87 76 etc.
Colin Powell 34 54 99 67 87
Tony Blair 67 76 54 22 12
Peter Gregor 99 99 99 99 99

没有数组的代码可以工作。

    public void Process() {
String filename;
filename = "Details.txt";


FileReader fileReader = null;
BufferedReader bufferedReader = null;

List<String> alist = new ArrayList<String>();


try{

fileReader = new FileReader(filename);
bufferedReader = new BufferedReader(fileReader);

String nextLine = bufferedReader.readLine();

while ((nextLine = bufferedReader.readLine()) != null) {
System.out.println(nextLine);
nextLine = bufferedReader.readLine();
nextLine.split(",");
System.out.print(nextLine);
alist.add(nextLine);
}
}
catch (IOException e){
System.out.println("Error reading from file: " + e);
}
System.out.print(alist);

}

所以我要解决的方法是使用 .split 两次,先用“\n”分割,然后用“”分割。创建二维数组。但我无法正常工作,我想知道是否有不同的库/方法可用于将文件的每一行读入二维数组。我研究过使用 ArrayList 模块(?),但再次没有成功地分割每一行。

最佳答案

所以,我给你拿了数据:

Mildred Bush 45 65 45 67 65
Fred Snooks 23 43 54 23 76
Morvern Callar 65 45 34 87 76
Colin Powell 34 54 99 67 87
Tony Blair 67 76 54 22 12
Peter Gregor 99 99 99 99 99

修改您的代码,例如:

String filename;
filename = "Details.txt";

List<String[]> alist = new ArrayList<String[]>();

try (BufferedReader bufferedReader = new BufferedReader(new FileReader(filename))) {

String nextLine = null;
while ((nextLine = bufferedReader.readLine()) != null) {
String[] parts = nextLine.split(" ");
String[] elements = new String[parts.length - 1];
elements[0] = parts[0] + " " + parts[1];
System.arraycopy(parts, 2, elements, 1, elements.length - 1);
alist.add(elements);
}
} catch (IOException e) {
System.out.println("Error reading from file: " + e);
}
for (String[] values : alist) {
System.out.println(Arrays.asList(values));
}

并打印:

[Mildred Bush, 45, 65, 45, 67, 65]
[Fred Snooks, 23, 43, 54, 23, 76]
[Morvern Callar, 65, 45, 34, 87, 76]
[Colin Powell, 34, 54, 99, 67, 87]
[Tony Blair, 67, 76, 54, 22, 12]
[Peter Gregor, 99, 99, 99, 99, 99]

正如我之前所说,从数据的 Object 表示形式开始并将数据读入其中会更容易,但这就是我。

这个示例对数据状态做了很多假设,所以要小心

看看try with resources有关我使用过的 try (...) {...} catch {...} 语句的更多详细信息

关于java - Java 中的数组和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47170777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com