讀檔案的幾種方式
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.StringReader;import java.io.StringWriter;/** * 磁碟上檔案要存在 * * @author Brother Huan * */public class FileRead {public FileInputStream fis; //以位元組為單位public FileOutputStream fos;//以位元組為單位public FileReader fr;//以字元為單位public FileWriter fw;//以字元為單位public StringReader sr;public StringWriter sw;public FileRead() {File file = new File("D://test.txt");try {System.out.println("以位元組為單位讀取檔案內容,一次讀一個位元組:");fis = new FileInputStream(file);int temp;System.out.println("讀到的內容--》");while ((temp = fis.read()) != -1) {System.out.print(temp + ",");}fis.close();System.out.println("");// *************************************************************//System.out.println("以位元組為單位讀取檔案內容,一次讀多個位元組:");byte[] b = new byte[11];fis = new FileInputStream(file);while (fis.read(b) != -1) {System.out.println("b的長度---》" + b.length);}fis.close();System.out.println("");// **************************************************************//System.out.println("以字元為單位讀取檔案內容,一次讀一個字元:");fr = new FileReader(file);int a;while ((a = fr.read()) != -1) {System.out.print(a + ",");}fr.close();System.out.println("");// **************************************************************//System.out.println("以字元為單位讀取檔案內容,一次讀多個字元:");fr = new FileReader(file);char[] c = new char[100];while (fr.read(c) != -1){for(char m : c){System.out.print(m+",");}System.out.println("");}System.out.println("");//**************************************************System.out.println("以行為單位讀取"); BufferedReader br = new BufferedReader(new FileReader(file)); String s; while((s=br.readLine())!=null){ System.out.println(s); } } catch (Exception e) {e.printStackTrace();}}}
寫檔案的幾種操作。
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import java.nio.CharBuffer;public class FileWrite {public FileInputStream fis;public FileOutputStream fos;public FileReader fr;public FileWriter fw;public StringReader sr;public StringWriter sw;/** * 將test。txt的檔案讀出,然後寫到test1.txt中 */public FileWrite() {File file1 = new File("D://test.txt");File file2 = new File("D://test1.txt");if (file2.exists()) {file2.delete();}try {file2.createNewFile();fos = new FileOutputStream(file2);fis = new FileInputStream(file1);fw = new FileWriter(file2);fr = new FileReader(file1);//**************************************************int b;while ((b = fis.read()) != -1) { // 單個位元組fos.write(b);}//**************************************************byte[] b1 = new byte[512];while (fis.read(b1) != -1) { // 多個位元組fos.write(b1);}//**************************************************char[] c1 = new char[100];int c;while ((c = fr.read(c1)) != -1) { // 多個字元,單個字元的自己去想 哈哈fw.write(c);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
Note:多個位元組比單個位元組的效率要高很多。