2014-10-29 2 views
-2

입력 파일 입력 파일을 읽는 방법 :는 자바

1/2/3/5/6 

을 나는 숫자 1 2 3 4 5 6을 저장할

내 코드 :

Scanner in= new Scanner(new FileReader("v.txt")); 
in.split(); 

내가이를 저장할 수있는 방법을 이렇게 없을까 가치?

+0

U는 질문을하기 전에 그것을봤을 것이다! – Chella

+0

@ user4192725 희망이 내 대답은 당신을 돕는다 –

+3

나는 OP가 기본적인 질문을 한 다음 사라지는이 성질의 많은 질문을 본다. – Madusudanan

답변

1

1. 가장 멋진 속임수Scanner입니다. 전체 파일을 문자열로 읽을 수 있습니다.

Source for Scanner Tricks

2

String text = new Scanner(new FileReader("v.txt")).useDelimiter("\\A").next(); 

. / 구분 기호

을 사용하여 문자열을 분할 할 수 있습니다. 당신은 각각 하나씩 문자열을 통해 갈 수 StringInteger 번호로 각각 변환합니다.에서

a. Integer.valueOf() which return Integer 
    b. Integer.parseInt() which return int 

Java 8

코드 :

String text = new Scanner(new FileReader("1.txt")).useDelimiter("\\A").next(); 
    String[] sp = text.split("/"); 
    List<Integer> listIntegers = Stream.of(sp) 
             .map(s -> Integer.valueOf(s)) 
             .collect(Collectors.toList()); 
    listIntegers.forEach(i -> System.out.print(" " + i)); 

출력 :

1 2 3 4 5 6 

필요한 수입 :

import java.util.stream.Collectors; 
import java.util.stream.Stream; 
+0

@ user4192725 작은 실수 하나. valueOf 반환 정수 및 parseInt 반환 int 내 업데이 트를 참조하십시오 –

1

먼저 전체 텍스트 줄을 읽으십시오.

String line=""; 
while(in.hasNextLine(){ 
line=in.nextLine(); 
} 

는 그런 다음 String에서 int를 얻을 수 Integer.parseInt()를 사용할 수

String[] arr=line.split("/"); 

당신이 int 값으로 다음을 얻고 싶은 경우에 /하여 선을 분할합니다.

0

시도의 followind 코드 :

Scanner in= new Scanner(new FileReader("v.txt")); 
String tok[]; 
while(in.hasNextLine(){ 
tok=in.nextLine().spilt("/"); 
} 

입력 :

1/2/3/5/6 

출력 : 이러한 작업에 대한 자세한 내용은

1 
2 
3 
5 
6 

this 링크를 방문.

+0

불필요한 탈출. 이스케이프 처리없이'split ("/")'를 사용할 수 있습니다. –

1

당신이 자바 7을 사용하는 경우 :

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

절반 만 묻습니다. – wumpz