1. 程式人生 > 實用技巧 >Java IO流 FileOutputStream、FileInputStream的用法

Java IO流 FileOutputStream、FileInputStream的用法

            FileOutputStream、FileInputStream的使用

  FileOutputStream是OutputStream的繼承類,它的主要功能就是向磁碟上寫檔案。FileOutputStream類中的write方法會把位元組一個一個的寫入磁碟中。

  以下是使用FileOutputStream輸出流將資料寫入到指定的檔案中,在構建FileOutputStream輸出流物件的過程中,如果指定的檔案不存在,那麼就建立該檔案。

package com.tianjh.io.outputstream;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created on 2020/12/9
 * 向磁碟上指定檔案檔案寫入資料
 * $FileOutputStreamDemo用法
 *
 */
public class FileOutputStreamDemo {
    public static void main(String[] args) {
        FileOutputStream fileOutputStream;
        try {
            // 構建FileOutputStream物件,"D:/one.txt"檔案不存在會自動新建
            fileOutputStream = new FileOutputStream("D:/one.txt");
            // write方法會把位元組一個一個的寫入磁碟中 write方法支援byte、int基本型別
            byte aa = 97;
            fileOutputStream.write(aa);

            int bb = 98;
            fileOutputStream.write(bb);

            char cc = 'c';
            // 沒有write(char),只能機器自動從char轉到int
            fileOutputStream.write(cc);

            // String dd = "100";
            // fileOutputStream.write(dd);
            // fileOutputStream.write(dd)會報錯, 因為FileOutputStream流中沒有write(String)方法,
            // 不過在PrintStream中有write(String)方法
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

執行之後得到如下檔案:

  FileInputStream是IntputStream的繼承類,它的主要功能就是向磁碟上讀檔案。FileInputStream類的read方法會一個一個位元組的從磁碟往回讀資料。下列是通過FileInputStream檔案輸入流讀取指定檔案 "D:/hello.txt"中的資料。

package com.tianjh.io.inputstream;

import java.io.*;

/**
 * Created on 2020/12/9
 * 從磁碟上讀入檔案,並輸出到控制檯
 * $FileInputStreamDemo用法
 *
 */
public class FileInputStreamDemo {
    public static void main(String[] args) {
        FileInputStream fileInputStream;
        int size;
        try {
            // 使用字串型別的檔名建立一個檔案輸入流物件來讀取檔案
            fileInputStream = new FileInputStream("D:/hello.txt");
            // available() 返回從此輸入流中可以讀取(或跳過)的剩餘位元組數的估計值,而
            // 不會被下一次呼叫此輸入流的方法阻塞。
            size = fileInputStream.available();
            for (int i = 0; i < size; i++) {
                System.out.print((char) fileInputStream.read());
                // expected output: hello world!
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

hello.txt 檔案內容如下:

控制檯輸出的結果為:

  hello world!