1. 程式人生 > 實用技巧 >IO流_位元組流

IO流_位元組流

IO流_位元組流

/**
 * 一、流的分類:
 * 1.操作的資料單位:位元組流、字元流
 * 2.資料的流向:輸入流、輸出流
 * 3.流的角色:節點流、處理流
 *
 * 二、流的體系結構
 * 抽象基類             節點流(或檔案流)            緩衝流(處理流的一種)
 * InputStream         FileInputStream           BufferedInputStream
 * OutputStream        FileOutputStream          BufferedOutputStream
 * Reader              FileReader                BufferedReader
 * Writer              FileWriter                BufferedWriter
 */

FileInputStreamAndOuputStream

  • 使用位元組流FileInputStreamch處理文字檔案,可能出現亂碼

  • FileInputStreamAndOuputStream讀寫非文字檔案

    示例程式碼:

/*
實現對圖片的複製操作
 */
public class testIOStream {
    public static void main(String[] args){
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        try {
            //造檔案
            File src = new File("基礎語法\\沙灘.jpg");
            File dest = new File("基礎語法\\沙灘2.jpg");
            //造流
            fileInputStream = new FileInputStream(src);
            fileOutputStream = new FileOutputStream(dest);
            //複製過程
            byte[] buffer = new byte[5];
            int len;
            while ((len = fileInputStream.read(buffer)) != -1){
                fileOutputStream.write(buffer,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //關閉操作
            try {
                if (fileInputStream != null)
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                if (fileOutputStream != null)
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }
}