2015-02-22 19:14

[Java] 讀取全部的檔案內容到字串

Scanner
  1. import java.io.File; 
  2. import java.util.Scanner; 
  3.  
  4. public class TestScanner { 
  5.  
  6.    public static void main(String[] args) throws Throwable { 
  7.        Scanner sc = new Scanner(new File("input.txt"), "UTF8"); 
  8.        String inputStr = sc.useDelimiter("\\Z").next(); 
  9.        sc.close(); 
  10.  
  11.        System.out.println(inputStr); 
  12.    } 
  13. } 
useDelimiter 是設置讀取的正規表示式分隔符,這裡可以用 "\\A" 或 "\\Z"
\A : 輸入的開始。
\Z : 輸入的結尾去掉結尾符號的部分。


Java 7 readAllBytes
  1. import static java.nio.file.Files.readAllBytes; 
  2. import static java.nio.file.Paths.get; 
  3.  
  4. public class TestReadAllBytes { 
  5.  
  6.    public static void main(String[] args) throws Exception { 
  7.        String inputStr = new String(readAllBytes(get("input.txt")), "UTF8"); 
  8.        System.out.println(inputStr); 
  9.    } 
  10. } 


Apache Commons IO
  1. import java.io.File; 
  2.  
  3. import org.apache.commons.io.FileUtils; 
  4.  
  5. public class TestReadFileToString { 
  6.  
  7.    public static void main(String[] args) throws Throwable { 
  8.        File file = new File("input.txt"); 
  9.        String inputStr = FileUtils.readFileToString(file, "UTF8"); 
  10.        System.out.println(inputStr); 
  11.    } 
  12. } 


DataInputStream available
  1. import java.io.DataInputStream; 
  2. import java.io.FileInputStream; 
  3.  
  4. public class TestDataInputStream { 
  5.  
  6.    public static void main(String[] args) throws Exception { 
  7.  
  8.        FileInputStream fileStream = new FileInputStream ("input.txt"); 
  9.        DataInputStream dis = new DataInputStream (fileStream); 
  10.  
  11.        byte[] datainBytes = new byte[dis.available()]; 
  12.        dis.readFully(datainBytes); 
  13.        dis.close(); 
  14.  
  15.        String inputStr = new String(datainBytes, "UTF8"); 
  16.        System.out.println(inputStr); 
  17.    } 
  18. } 

0 回應: