2013-11-25 7 views
1

Я хочу прочитать ввод из текстового файла в java. У меня есть текстовый файл следующим образом.Чтение ввода из текстового файла в java

5 
4 
abcd 
6 
8 
defgh 
10 

Я хочу прочитать каждый символ из файла в качестве отдельного объекта и работать над этим персонажем индивидуально, как хранение 4 в базе данных отделения ABCD как B C D и работать на них по отдельности.

Каковы различные способы сделать это. Каков наиболее эффективный способ.

+2

Что ** один ** способ вы пробовали? –

+0

Я попытался использовать класс FileReader, затем FileReader fr = new FileReader (файл); int r while ((r = fr.read()) = - 1) { Char c = (Char) r; System.out.Println (c); –

+0

@RiteshSangwan разместите свой код, пожалуйста, чтобы мы могли сказать вам, почему он терпит неудачу. – mdolbin

ответ

3

Самый простой способ (и короткий), если вы используете Java 7:

List<String> lines = Files.readAllLines(Paths.get("path to file"), StandardCharsets.UTF_8); 

Это поставит все данные файла в список, где элемент списка представляет собой одну строку

+0

Я попробовал, но после каждой строки появляется пустая строка, когда я пытаюсь распечатать содержимое строк. Я также не могу получить первую строку. Это код 'Список lines = Files.readAllLines (Paths.get (filePath), StandardCharsets.UTF_8); для (INT I = 1; I <50; я ++) { System.out.println (lines.get (я)), ' @Maxim Shoustin –

+1

@RiteshSangwan, потому что вы запускаете цикл от' г = 1' изменения до '0'. about spaces: убедитесь, что файл не содержит пустых строк –

0

Используйте читать строку, если ваш файл имеет новый линий.

String sCurrentLine; 
br = new BufferedReader(new FileReader("C:\\testing.txt")); 

while ((sCurrentLine = br.readLine()) != null) { 
    System.out.println(sCurrentLine); 
} 
+0

Я также подумал об этом методе, но как я могу отдельно отделить abcd от строки. –

+0

Как только у вас есть строка в переменной, вам нужно будет ее разбить на массив символов. Использовать toCharArray(); – sanket

0

Если вы хотите использовать каждый символ по отдельности, а затем с помощью сканера может быть путь:

import java.io.File; 
import java.io.IOException; 
import java.util.Scanner; 

public class SOExample { 

    public static void main(String[] args) throws IOException { 
    Scanner sc = new Scanner(new File("myfile.txt")); 
    sc.useDelimiter(""); 
    while (sc.hasNext()) { 
     String s = sc.next(); 
     if (s.trim().isEmpty()) { 
     continue; 
     } 
     System.out.println(s); 
    } 
    sc.close(); 
    } 

} 

выход:

5 
4 
a 
b 
c 
d 
6 
8 
d 
e 
f 
g 
h 
1 
0 
Смежные вопросы