1. 程式人生 > 實用技巧 >Java日誌第36天 2020.8.10

Java日誌第36天 2020.8.10

IO

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):從指定的位元組陣列寫入len位元組,從偏移量off開始輸出到此輸出流

- public abstract void write(int b):將指定的位元組輸出流

java.io.FileOutputStream extends OutputStream

FileOutputStream:檔案位元組輸出流

構造方法

FileOutputStream(String name):建立一個向具有指定名稱的檔案中寫入資料的輸出檔案流

FileOutputStream(File file):建立一個向指定File物件表示的檔案中寫入資料的檔案輸出流

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList; import java.util.Arrays; public class Demo01OutputStream { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); fos.write(97);//a fos.close();
/* public void write(byte[] b):將b.length位元組從指定的位元組陣列寫入此輸出流 如果第一個位元組是正數(0-127),那麼顯示的時候會查詢ASCII表 如果第一個位元組是負數,那第一個位元組會和第二個位元組組成一箇中文顯示,查詢系統的預設碼錶(GBK) */ FileOutputStream fos2 = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\b.txt"); byte[] b = {65, 66, 67, 68, 69}; byte[] b2 = {-65, -66, -67, 68, 69}; fos2.write(b); fos2.write(b2); fos2.close(); /* public void write(byte[] b, int off, int len) 從指定的位元組陣列寫入len位元組,從偏移量off開始輸出到此輸出流 */ FileOutputStream fos3 = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\c.txt"); fos3.write(b, 1, 2); /* 寫入字元的方法 使用String類中的方法把字串轉換為位元組陣列 byte[] geyBytes() 把字串轉換為位元組陣列 */ byte[] bytes = "你好".getBytes(); System.out.println(Arrays.toString(bytes)); fos3.write(bytes); fos3.close(); } }

*筆記本開啟檔案時,都會查詢編碼表,把位元組轉換為字元表示

資料的追加續寫與換行

續寫使用兩個引數的構造方法:

- FileOutputStream(String name, boolean append)建立一個向具有指定name的檔案中寫入資料的輸出檔案流

- FileOutputStream(File file, boolean append)建立一個向指定File物件表示的檔案中寫入資料的檔案輸出流

引數:

boolean append:追加寫開關

  如果是true:建立物件不會覆蓋原始檔,繼續在檔案的末尾追加寫資料

  如果是false:建立一個新檔案,覆蓋原始檔

換行需要用換行符:

Windows:\r\n

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

public class Demo01OutputStream {

    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt",true);
        for (int i = 0; i < 10; i++) {
            fos.write("你好".getBytes());
            fos.write("\r\n".getBytes());
        }
        fos.close();
    }
}

明日任務:位元組輸入流的學習