Чтение данных как объекта и ввод в массив объектов - PullRequest
0 голосов
/ 15 декабря 2018

Главной темой этого проекта является сортировка.Мой полный код работает (вроде), но проблема в том, что он всегда сортирует мои данные как строку, и я уверен, что это вызвано тем фактом, что я читаю строку 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 голосов
/ 15 декабря 2018

Почему бы вам не использовать внутренние инструменты Java8 для подготовки текстовых файлов:

public static Object[] readAllLinesFromFile(Path path) throws IOException {
    return Files.lines(path).toArray(String[]::new);
}
0 голосов
/ 16 декабря 2018

Разобрался с проблемой.Этот код исправляет, благодаря людям, которые помогли.

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.
            }
        }
    }
}
0 голосов
/ 15 декабря 2018

Строка Java - это объект .(String extends Object) Таким образом, вы можете получить ссылку на объект посредством присваивания !

Возможно, вы можете попробовать добавить содержимое из вашего файла в массив 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.");
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...