1. 程式人生 > >Java IO中幾個主要類介紹和使用

Java IO中幾個主要類介紹和使用

1. I/O流可以有三種分類方法.

第一, 輸入流,輸出流 .
第二, 位元組流,字元流 . 
第三, 節點流(真正直接處理資料的) ,處理流(裝飾加工節點流的) .

2. 位元組流

抽象類 <– 面向位元組的檔案流 .  
InputStream <– FileInputStream  
OutputStream <– FileOutputStream  

常用方法 
InputStream  int read(byte [] c,int off, int len)  
OutputStream voidwrite(byte [] c,int off, int len) .

3. 字元流

抽象類 <– 面向字元檔案流 .
Reader <– FileReader 
Writer <— FileWriter 

常用方法 
FileReader int read(char [] c,int off, int len)   
FileWriter voidwrite(char [] c,int off, int len) .

4. 節點流和處理流

類
BufferdReader 可以稱作字元、輸入、處理流 .

方法
String readLine()

BufferdReader建構函式接受的是 Reader 型別的引數

4. Java中io類是典型的裝飾者模式

5. 示例

import java.io.*;
public class Filerw{
    public static void main (String args[]){
        Filerw filerw=new Filerw();
        //filerw.readAndWrite();
        filerw.bufferReader();
    }
        /**
        *   1.使用輸入輸出流操作檔案
        */
        public void readAndWriteStream(){
            FileInputStream inStream=null;
            FileOutputStream outStream=null;
            try{
                //生成一個輸入流的物件  
                inStream=new FileInputStream(“e:/javapro/FileDemo/from.txt”);  
                //生成一個輸入流的物件  
                outStream=new FileOutputStream(“e:/javapro/FileDemo/to.txt”);  
                byte[] buffer=new byte[1024];
                int len=0;
                //讀取檔案
                len=inStream.read(buffer,0,buffer.length);
                for(int i=0; i<len; i++){
                    System.out.print(buffer[i]);
                }
                //寫入到檔案
                outStream.write(buffer,0,len);
            }catch (Exception  e){
                System.out.print(e);
            }finally{
                try{
                    inStream.close();
                    outStream.close();
                }catch (Exception e){
                    System.out.print(e);
                }
            }
        }
        /**
        *   2.使用位元組流操作檔案
        */
        public void readAndWrite(){
            FileReader reader=null;
            FileWriter writer=null;
            try{
                //生成一個字元輸入流的物件  
                reader=new FileReader(“e:/javapro/FileDemo/from.txt”);  
                //生成一個字元輸入流的物件  
                writer=new FileWriter(“e:/javapro/FileDemo/to.txt”);  
                char[] buffer=new char[1024];
                int len=0;
                //讀取檔案
                len=reader.read(buffer,0,buffer.length);
                for(int i=0; i<len; i++){
                    System.out.print(buffer[i]);
                }
                //寫入到檔案
                writer.write(buffer,0,len);
            }catch (Exception  e){
                System.out.print(e);
            }finally{
                try{
                    reader.close();
                    writer.close();
                }catch (Exception e){
                    System.out.print(e);
                }
            }
        }
        /**
        *   3.使用節點流和處理流操作檔案
        */
        public void bufferReader(){
            FileReader reader=null;  
            BufferedReader bufferedReader=null;  
            try{
                reader=new FileReader(“e:/javapro/FileDemo/fromlinetext.txt”);
                bufferedReader=new BufferedReader(reader);
                String line=null;
                while((line=bufferedReader.readLine())!=null){  
                    //line=bufferedReader.readLine();  
                    System.out.println(line);  
                }
            }catch (Exception e){
                System.out.print(e);
            }finally{
                try{
                    reader.close();
                    bufferedReader.close();
                }catch (Exception e){
                    System.out.print(e);
                }
            }
        }
}