持久設備中存儲數據都是以二進制的形式來存儲的,java為我們提供了字節流來以字節的方式讀取,或者以字節的方式向設備中寫數據。
inputstream:字節輸入流。outputstream:字節輸出流。
字節輸出流對象
查看api得知OutputStream類是字節輸出流的超類。它定義了字節輸出數據的基本功能。
使用java流對象操作持久設備上的數據就要讓java程序與持久設備建立連接通道。然后提供java中提供的流對象來寫數據,操作完之后一定要斷開通道。
其中方法介紹:
close() 關閉Java程序和持久設備之間的連接
flush() 刷新,目的就是把Java程序中的數據刷到持久設備上。
write(byte[] b) 把b這個字節數組中的數據寫到指定的持久設備上。
write(byte[] b, int off, int len) 把b字節數組中的數據,從off位置開始寫,共計寫出len個字節
write(int b) 調用一次這個方法,寫出一個字節數據。
通過查找api得知OutputStream類是一個抽象類,想完成輸出的一些功能可以使用它的子類FileOutputStream類
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fs = new FileOutputStream("e:/lishuais.java");
fs.write(88);
String s = "好好學習,天天向上";
//使用字節流輸出字符串要將字符串轉化成字節類型的。
byte[] b = s.getBytes();
fs.write(b);
fs.close();
}
}
追加和換行功能:
由于每次創建同名的文件就會對舊文件覆蓋,這里在創建FileOutputStream后根據文件后的boolean值來決定是否進行追加。
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException {
FileOutputStream fs = new FileOutputStream("e:/lishuais.java", true);
String s = "這是追加的數據" + LINE_SEPARATOR;
byte[] b = s.getBytes();
fs.write(b);
fs.close();
}
}