2014-10-29 184 views
-2

輸入文件:如何用Java讀取輸入文件

1/2/3/5/6 

我想存儲數字1 2 3 4 5 6

我的代碼:

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

是不是有這樣我怎麼能存儲這些值?

+0

你會在問這個問題之前用它搜索它! – Chella 2014-10-29 05:53:58

+0

@ user4192725希望我的回答可以幫助你 – 2014-10-29 06:13:59

+3

我看到很多這種性質的問題,其中OP提出一個基本問題然後消失。 – Madusudanan 2014-10-29 06:29:27

回答

1

。有一個最酷的把戲Scanner,你可以讀取整個文件成一個字符串。

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

Source for Scanner Tricks

。您可以使用/分隔符分割字符串

。你可以通過字符串逐個將每個String轉換爲Integer號碼。

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返回Integer和parseInt返回int請參閱我的更新 – 2014-10-29 17:02:07

1

首先閱讀全文的文字。

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

然後通過/

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

如果你想獲得這些爲int值分割線,可以使用Integer.parseInt()String得到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(「/」)'而不會轉義。 – 2014-10-29 05:54:28

1

,如果你使用的Java 7:

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

這只是問路的一半。 – wumpz 2014-10-29 05:59:19