java的讀寫操作是學java開發的必經之路,下面我們就來看看java檔案怎麼讀。
1、使用BufferedReader讀取文件
BufferedReader是為了提供讀取的效率而設計的包裝類,它可以包裝字元流。可以從字符輸入流中讀取文本,緩衝各個字符,從而實現字符、數組和行的高效讀取。
static long testBuffered(String fileName) throws IOException{ Long startTime = System.currentTimeMillis(); BufferedReader reader = new BufferedReader(new FileReader(fileName)); char[] buffer=new char[8*1024]; long sum = 0; while((count=reader.read(buffer))!=-1) { sum += count; } reader.close(); Long endTime = System.currentTimeMillis(); System.out.println("Total time of BufferedReader is "+ (endTime - startTime) + " milliseconds, Total byte is " + sum); return endTime - startTime; }
2、使用RandomAccessFile類別讀取文件
RandomAccessFile是Java提供的對文件內容的訪問,既能夠讀取文件,也能夠寫文件;RandomAccessFile支援隨機存取文件,可以存取文件的任意位置。
static long testRandomAccess(String fileName) throws IOException{ Long startTime = System.currentTimeMillis(); RandomAccessFile reader = new RandomAccessFile(fileName,"r"); int count; byte[] buffer=new byte[8*1024];//缓冲区 long sum = 0; while((count=reader.read(buffer))!=-1){ sum += count; } reader.close(); Long endTime = System.currentTimeMillis(); System.out.println("Total time of RandomAccess is "+ (endTime - startTime) + " milliseconds, Total byte is " + sum); return endTime - startTime; }
3、使用FileInputStream方法讀取檔案
這種方式也很常見,原理也和名字一樣,把檔案變成輸入流,然後一個字符一個字符的讀取。它是呼叫了InputStream的read函數實作的,程式碼如下:
public int read(byte b[], int off, int len) throws IOException { int c = read(); if (c == -1) { return -1; } b[off] = (byte)c; int i = 1; try { for (; i < len ; i++) { c = read(); if (c == -1) { break; } b[off + i] = (byte)c; } } catch (IOException ee) { } return i; }
流是一個抽象的概念。當Java程式需要從資料來源讀取資料時,會開啟一個到資料來源的流。資料來源可以是文件,記憶體或網路等。同樣,當程式需要輸出資料到目的地時也一樣會開啟一個流,資料目的地也可以是檔案、記憶體或網路等。流的創建是為了更方便地處理資料的輸入輸出。
更多java知識請關注java基礎教學。
以上是java中檔案怎麼讀取的詳細內容。更多資訊請關注PHP中文網其他相關文章!