2012-05-25 7 views
6

Можно создать дубликат:
Java: Reading integers from a file into an arrayКак читать целые значения из текстового файла

Я хочу читать целые значения из текстового файла сказать contactids.txt. в файле у меня есть такие ценности, как

12345 
3456778 
234234234 
34234324234 

Я хочу прочитать их из текстового файла ... пожалуйста, помогите

+0

вам нужно 'Scanner' – triclosan

ответ

14

Вы можете захотеть сделать что-то вроде этого (если вы используете Java 5 и более)

Scanner scanner = new Scanner(new File("tall.txt")); 
int [] tall = new int [100]; 
int i = 0; 
while(scanner.hasNextInt()) 
{ 
    tall[i++] = scanner.nextInt(); 
} 

Via Julian Grenier от Reading Integers From A File In An Array

+1

. Вы используете тот же ответ, на который отвечает [здесь] (http://stackoverflow.com/questions/303913/java-reading-integers-from-a-file-into-an-array/304061#304061) – Jaguar

+1

Спасибо, что его работа – Cindrella

+3

Я добавил необходимый цитаты к вашему ответу. Пожалуйста, сделайте это в будущем. –

1

Насколько велики значения? Java 6 имеет класс Scanner, который может читать что угодно: от int (32-разрядного), длинного (64-битного) до BigInteger (произвольное большое целое число).

Для Java 5 или 4 сканер есть, но поддержка BigInteger не поддерживается. Вы должны читать строки за строкой (с помощью readLine класса Scanner) и создавать объект BigInteger из String.

2

ReadLine() метода использование FileInputStream «s для чтения и анализа возвращенной строки в целом, используя Integer.parseInt() метода.

+1

я бы не нашел' ReadLine() 'в' FileInputStrem' –

+0

, что @MohammadFaisal сказал –

+0

@Mr_and_Mrs_D мохаммад задал правильный вопрос, то 'Readline()' метод не присутствует в ' FileInputStream', но он находится в 'BufferedReader'. Кроме того, 'FileInputStrem.read() метод возвращает только типы' int char byte' – yeppe

3

Вы можете использовать Scanner и его метод nextInt().
Сканер также имеет nextLong() для больших целых чисел, если необходимо.

+0

+1 Я бы использовал 'nextLong()' as '34234324234' слишком большой для' int' –

3

Попробуйте это: -

File file = new File("contactids.txt"); 
Scanner scanner = new Scanner(file); 
while(scanner.hasNextLong()) 
{ 
    // Read values here like long input = scanner.nextLong(); 
} 
0

I будет использовать почти то же самое, но со списком в качестве буфера для целых чисел:

Смежные вопросы