java.io.OutputStream & java.io.FileOutputStream


java.io.OutputStream & java.io.FileOutputStream

1、Java.io.OutputStream(字節輸出流)

字節輸出流,這是一個抽象類,是表示輸出字節流的所有類的超類。下面是該類的子類都共有的方法:

方法 作用
public void close() 關閉輸出流並釋放與此流相關的任何系統資源
public void flush() 刷新輸出流,並強制任何緩沖的輸出字節被寫出
public void write(byte[] b) 將b.length字節從指定的字節數組寫入此輸出流,內存寫到硬盤
public void write(byte[] b, int off, int len) 從指定的b字節數組寫入len字節,從偏移量off開始輸出到此輸出流
public abstract void write(int b) 將指定的字節輸出到流

2、java.io.FileOutputStream extends OutputStream

構造方法 作用
FileOutputStream(String name) 創建一個有指定名稱的文件,把FileOutputStream對象指向創建好的文件,如果文件已存在,則覆蓋
FileOutputStream(File file) 創建一個有指定名稱的文件,把FileOutputStream對象指向創建好的文件,如果文件已存在,則覆蓋
FileOutputStream(String name, boolean append) 創建一個有指定名稱的文件,把FileOutputStream對象指向創建好的文件,如果文件已存在,append為true則在原文件追加寫,否則創建新文件,覆蓋原文件
FileOutputStream(File file, boolean append) 創建一個有指定名稱的文件,把FileOutputStream對象指向創建好的文件,如果文件已存在,append為true則在原文件追加寫,否則創建新文件,覆蓋原文件

參數:String name(寫入的目的地是一個文件的路徑)

File file(寫入數據的目的地是一個文件)

構造方法的作用

  • 創建一個FileOutputStream對象
  • 根據構造方法傳遞的文件,文件路徑創建一個文件
  • 將FileOutputStream對象指向創建好的文件

3、寫入數據的原理(內存 --> 硬盤文件)

java程序 --> JVM --> OS --> OS調用寫數據的方法 --> 把數據寫入到文件

4、字節輸出流的使用步驟

  • 創建一個FileOutputStream對象,構造方法中傳遞文件路徑或者文件
  • 調用FileOutputStream對象的方法write,把數據寫入到文件
  • 使用完畢要清空內存,釋放資源
package cn.zhuobo.day14.streamOutput;

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

public class Demo01FileOutputStream {
    public static void main(String[] args) throws IOException {
    // 創建一個FileOutputStream對象,構造方法中傳遞文件路徑或者文件
        FileOutputStream fos = new FileOutputStream("/home/zhuobo//Desktop/a.txt");
        
        // 調用FileOutputStream對象的方法write,把數據寫入到文件,指定的字節97 是 a
        fos.write(97);
        // 釋放資源,close流
        // fos.close();
        byte[] bytes = {97, 98, 99, 100};// abcd
        //fos.write(bytes);// aabbc
        //fos.close();
        fos.write(bytes, 1, 2);// bc
        // 寫入字符串
        String str = "hello";
        byte[] bytes1 = str.getBytes();// 字符串轉化為字符數組再寫入
        fos.write(bytes1);
        fos.write("\n".getBytes());// 換行
        fos.close();
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM