当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中导入ASCII文件?

如何解决《如何在Java中导入ASCII文件?》经验,为你挑选了1个好方法。

我有代码:

package package;

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

public class Test {

    private List liczby = new ArrayList();

    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

doublesharp.. 5

您正在呼叫Integer.parseInt(linia.trim()),但第一行不是有效数字,因为它包含空格.在将其片段转换linia.trim()String之前,您需要首先解析输出Integers.

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

可能@Pshemo提出的更好的方法是使用Scanner类.



1> doublesharp..:

您正在呼叫Integer.parseInt(linia.trim()),但第一行不是有效数字,因为它包含空格.在将其片段转换linia.trim()String之前,您需要首先解析输出Integers.

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

可能@Pshemo提出的更好的方法是使用Scanner类.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有