gpt4 book ai didi

java - 读取与数组列表

转载 作者:行者123 更新时间:2023-12-01 14:27:52 25 4
gpt4 key购买 nike

我只是想知道,你能阅读纺织品吗?或者你是否必须将文本文件导入java(如字符串或数组列表)才能使用文本文件上的信息。

例如,我有一个与此类似的文件

1  34  12  43  65
1 44 8 45 77
2 34 10 56 87
6 43 6 76 89
6 65 7 23 90

其中每一列都代表某些内容(也许第一列是商品 ID,第二列是价格,第三列是月份)。然后假设我有 20GB 的信息以这种方式排列。我可以使用 java 来对这些信息进行数据摘要吗?还是文件太大了?我尝试将 20gb 文件作为 ArrayList 导入,但等待 10 分钟后数组列表仍然填满,我放弃了。

我在想,也许如果我可以直接与文件交互,而不是将其作为数组列表导入,它可能会起作用。

最佳答案

您当然可以使用 Java 来总结这些信息。例如,如果您的目标是计算每列的最小值、最大值和平均值,您可以编写如下内容:

final BufferedReader br =
new BufferedReader(new FileReader("/this/is/the/path/to/the/file.txt"));
final int[] mins = { Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE,
Integer.MAX_VALUE, Integer.MAX_VALUE };
final int[] maxes = { Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
Integer.MIN_VALUE, Integer.MIN_VALUE };
final double[] sums = { 0.0, 0.0, 0.0, 0.0, 0.0 };
int count = 0;
try {
String line;
while((line = br.readLine()) != null) {
++count;
final String[] values = line.split("\\s+");
for(int i = 0; i < 5; ++i) {
final int value = Integer.parseInt(values);
if(value < mins[i]) {
mins[i] = value;
}
if(value > maxes[i]) {
maxes[i] = value;
}
sums[i] += value;
}
}
} finally {
br.close();
}
final double[] averages = new double[sums.length];
for(int i = 0; i < sums.length; ++i) {
averages = sums[i] / count;
}
System.out.println(Arrays.toString(mins));
System.out.println(Arrays.toString(maxes));
System.out.println(Arrays.toString(averages));

关于java - 读取与数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052877/

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