gpt4 book ai didi

java - 如何在 Java 中导入 ASCII 文件?

转载 作者:行者123 更新时间:2023-11-30 06:11:09 25 4
gpt4 key购买 nike

我有代码:

package package;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

public class Test {

private List<Integer> liczby = new ArrayList<Integer>();

public void dodajLiczbe(int liczba) {
liczby.add(liczba);
}

public int wezLiczbe(int indeks) {
return liczby.get(indeks);
}

public int ileLiczb() {
return liczby.size();
}

public static void main(String[] args) {
Test w = new Test();

String nazwaPliku = "file.xyz";

try {
BufferedReader br = new BufferedReader(new FileReader(nazwaPliku));
String linia = null;
while ((linia = br.readLine()) != null) {
int liczba = Integer.parseInt(linia.trim());
w.dodajLiczbe(liczba);
}
} catch (Exception e) {
System.err.println("Wystapil blad przy wczytywaniu danych");
e.printStackTrace();
}
System.out.println("Wczytanych liczb: " + w.ileLiczb());
}

}

我正在尝试导入我的 ASCII 文件,它有 150k 行并且我在编译时出现错误(第一行):

java.lang.NumberFormatException: For input string: "0.000 210 62"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at package.Test.main(Test.java:33)

第一列必须带有“.”。如果您有更好的选择,请告诉我。 file.xyz 中的第一行:

0.000 210 62
0.000 217 79
0.000 224 91
0.000 231 99
0.000 238 109

最佳答案

您正在调用 Integer.parseInt(linia.trim()),但第一行不是有效数字,因为它包含空格。在将其部分转换为 Integers 之前,您需要先将 linia.trim() 的输出解析为 String

String[] parts = linia.trim().split(" ");
Integer firstNumber = Integer.parseInt(parts[0]);

@Pshemo 建议的更好方法可能是使用 Scanner类。

关于java - 如何在 Java 中导入 ASCII 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34602081/

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