读取数据作为对象并将其输入到对象数组

时间:2018-12-15 16:52:37

标签: java file-io

该项目的首要主题是对事物进行排序。我的完整代码可以运行(但是),但问题是它始终将我的数据按字符串排序,并且我可以肯定它是由以下事实引起的:我将dataFile的行作为字符串读取,并将其作为字符串输入到数组中。

Object[] list = new Object[n];

    if (n > 0) {

        try {
            BufferedReader file = new BufferedReader(new FileReader("dataFile.txt"));

            for (int i = 0; i < list.length; i++) {
                String t = file.readLine();
                if (t != null)
                    list[i] = t;
            }
            file.close();
        }

        catch (FileNotFoundException e) {
            System.out.println("Error accessing file.");
        } catch (IOException io) {
            System.out.println("There was an error reading from the file.");
        }
    }

如果有人可以向我指出如何读取一行并将其作为对象输入到数组中的正确方向,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

  

Java字符串是对象。 (字符串扩展对象)   因此,您可以通过分配获得对象引用

也许,您可以尝试将文件中的内容添加到Object数组中,如下所示:-

Object[] list = new Object[n];

    if (n > 0) {

        try {
            BufferedReader file = new BufferedReader(new FileReader("dataFile.txt"));

            for (int i = 0; i < list.length; i++) {
                String t = file.readLine();
                Object obj = t;  
                if (obj != null)
                    list[i] = obj;
            }
            file.close();
        }

        catch (FileNotFoundException e) {
            System.out.println("Error accessing file.");
        } catch (IOException io) {
            System.out.println("There was an error reading from the file.");
        }
    }

答案 1 :(得分:0)

为什么不使用Java8内部工具准备文本文件:

public static Object[] readAllLinesFromFile(Path path) throws IOException {
    return Files.lines(path).toArray(String[]::new);
}

答案 2 :(得分:-1)

找出问题所在。感谢帮助的人,此代码已修复。

void dataType() {
    for (int i = 0; i < list.length; i++) {
            try {
                checkINT = Integer.parseInt((String) list[i]);
                list[i] = checkINT;
            } catch (Exception eInt) {
                try { 
                    checkDBL = Double.parseDouble((String) list[i]);
                    list[i] = checkDBL;
                } catch (Exception eDbl) {
                    // Then its a string.
            }
        }
    }
}