Скажем, у меня есть файл с именем «input.txt» , в котором есть куча положительных целых чисел:
и т.д. (одно целое на строку)
Я хочу прочитать этот файл и сделать его в массив. Первое целое число (в данном случае 6) сообщает количество индексов или элементов в массиве, поэтому 6 точек. Остальные числа заполняют массив, начинающийся с 0. Таким образом, при индексе 0 число равно 5, при индексе 1 — 6 и т.д.
Может кто-нибудь, пожалуйста, покажите мне, как прочитать этот файл и сделать его в массив с именем A и вернуть целые числа в каждом индексе как n?
это то, что у меня есть до сих пор:
Я думаю, что я делаю что-то совершенно неправильное. пожалуйста, помогите.
Я не могу понять, как сделать этот txt-файл с номерами в массив, я могу заставить его читать и печатать экран, но мне нужно уметь организовывать номера и удалять дубликаты. Это то, что мой код выглядит до сих пор
1 ответ
Я бы рекомендовал использовать ArrayList, а не массив.
С массивом вы должны были бы проанализировать список и вычислить количество строк, прежде чем вы могли бы даже инициализировать его. ArrayList гораздо более гибкий, так как вам не нужно объявлять, сколько значений будет добавлено к нему.
Дана задача на нахождение наибольшего числа. Есть файл chisla.txt, содержащий числа 3, 8, 1, 5 в столбик. Необходимо в коде этот файл прочитать и найти наибольшее число.
Я знаю как вывести эти числа на экран и как прописав массив найти в нем наибольшее.
Но как соединить эти две задачи? Как прописать в коде этот «переход» с одной задачи на другую?
3 ответа 3
Раз всё же начали давать ответы, то с использованием Java 8 можно поступить так:
Все строки из файла, а точнее поток строк Stream , возвращаемый in.lines() , привести к потоку int -чисел ( IntStream , возвращаемый mapToInt ) с помощью Integer.parseInt , после чего этот поток преобразовать в массив int[] с помощью toArray() .
Также нужно не забывать закрывать BufferedReader после чтения данных. В представленном коде это делается с помощью конструкции try-with-resources.
А вообще, максимум можно находить и с помощью самого IntStream :
В массив закидывать не обязательно, вы просто можете прочитать построчно файл, сравнивая с текущим максимумом:
Источник: