輸出字節(jié)流:
--------| OutputStream 抽象類蜈垮,所有輸出字節(jié)字節(jié)流的父類耗跛。
------------| FileOutputStream 向文件輸出數(shù)據(jù)的輸出字節(jié)流。
使用FileOutputStream步驟:
- 找到目標(biāo)文件
- 建立數(shù)據(jù)的輸出通道
FileOutputStream要注意的細(xì)節(jié):
- new FileOutputStream 的時候攒发,如果目標(biāo)文件不存在调塌,那么會先創(chuàng)建目標(biāo)文件,然后再寫入惠猿。(如果目標(biāo)文件所在的文件夾不存在羔砾,則拋出異常)
- new FileOutputStream(file) 如果目標(biāo)文件已經(jīng)存在,那么會先清空 目標(biāo)文件的數(shù)據(jù)偶妖,然后再寫入新的數(shù)據(jù).
- 寫入數(shù)據(jù)的時候如果需要以追加的形式寫入姜凄,那么需要使用new FileOutputStream(file,true) 這個構(gòu)造函數(shù)。
- 使用write(int b)方法的時候趾访,雖然參數(shù)接受的一個int類型的數(shù)據(jù)态秧,但是實際上只會把數(shù)據(jù)的低八位寫出,其他24位丟棄扼鞋。
00000000-00000000-00000001-10000000
write(byte[] b, int off, int len)
package cn.itcast.output;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException {
write3();
}
public static void write3() throws IOException{
//找到目標(biāo)文件
File file = new File("F:\\a.txt");
//建立數(shù)據(jù)的輸出通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//
String data = "abcd";
byte[] buf = data.getBytes(); // 97 98 99 100
fileOutputStream.write(buf, 0, 2); // 指定開始的索引值與字節(jié)個數(shù)寫出申鱼。
fileOutputStream.close();
}
//方式二: 先把數(shù)據(jù)轉(zhuǎn)成字節(jié)數(shù)組然后再寫出。
public static void write2() throws IOException{
//找到目標(biāo)文件
File file = new File("F:\\a.txt");
//建立數(shù)據(jù)的輸出通道
FileOutputStream fileOutputStream = new FileOutputStream(file,true); //第二個參數(shù)為true時云头,寫入文件數(shù)據(jù)就是以追加的形式寫入的
//準(zhǔn)備數(shù)據(jù)捐友, 把數(shù)據(jù)寫出
String str = "\r\nhello world";
//把字符串轉(zhuǎn)成字節(jié)數(shù)組
byte[] buf = str.getBytes();
//把字節(jié)數(shù)組寫出
fileOutputStream.write(buf);
//關(guān)閉資源
fileOutputStream.close();
}
//方式一: 每次只能寫 一個字節(jié)的數(shù)據(jù) 。
public static void write1() throws IOException{
//找到目標(biāo)文件
File file = new File("f:\\a.txt");
//建立數(shù)據(jù)的輸出通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//把數(shù)據(jù)寫出
fileOutputStream.write('h');
fileOutputStream.write('e');
fileOutputStream.write('l');
fileOutputStream.write('l');
fileOutputStream.write('o');
//關(guān)閉資源
fileOutputStream.close();
}
}