用Java讀取純文本文件

彷佛有多種方法能夠用Java讀寫文件數據。 java

我想從文件中讀取ASCII數據。 有哪些可能的方法及其區別? spa


#1樓

對於大型文件,我編寫的這段代碼要快得多: code

public String readDoc(File f) {
    String text = "";
    int read, N = 1024 * 1024;
    char[] buffer = new char[N];

    try {
        FileReader fr = new FileReader(f);
        BufferedReader br = new BufferedReader(fr);

        while(true) {
            read = br.read(buffer, 0, N);
            text += new String(buffer, 0, read);

            if(read < N) {
                break;
            }
        }
    } catch(Exception ex) {
        ex.printStackTrace();
    }

    return text;
}

#2樓

這是不使用外部庫的另外一種方法: get

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public String readFile(String filename)
{
    String content = null;
    File file = new File(filename); // For example, foo.txt
    FileReader reader = null;
    try {
        reader = new FileReader(file);
        char[] chars = new char[(int) file.length()];
        reader.read(chars);
        content = new String(chars);
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if(reader != null){
            reader.close();
        }
    }
    return content;
}

#3樓

可能不像使用緩衝I / O那樣快,可是很是簡潔: input

String content;
    try (Scanner scanner = new Scanner(textFile).useDelimiter("\\Z")) {
        content = scanner.next();
    }

\\Z模式告訴Scanner ,定界符爲EOF。 it


#4樓

這是一個簡單的解決方案: io

String content;

content = new String(Files.readAllBytes(Paths.get("sample.txt")));

#5樓

用Java從文件中讀取數據的最簡單方法是利用File類讀取文件,並使用Scanner類讀取文件內容。 import

public static void main(String args[])throws Exception
{
   File f = new File("input.txt");
   takeInputIn2DArray(f);
}

public static void takeInputIn2DArray(File f) throws Exception
{
    Scanner s = new Scanner(f);
    int a[][] = new int[20][20];
    for(int i=0; i<20; i++)
    {
        for(int j=0; j<20; j++)
        {
            a[i][j] = s.nextInt();
        }
    }
}

PS:不要忘記導入java.util。*; 以便掃描儀正常工做。 file

相關文章
相關標籤/搜索