-
FileOutputStream(文件輸出流)操作對(duì)象是一個(gè)文件花吟。
(1)構(gòu)造函數(shù):
構(gòu)造函數(shù)按接收參數(shù)來(lái)分可分為:
1.File對(duì)象。
1)public FileOutputStream(File file)
2)public FileOutputStream(File file, boolean append)
2.表示文件地址的String字符串。
1) public FileOutputStream(String name)
2) public FileOutputStream(String name, boolean append)
(2)寫方法write()
write返回值:
1)如果沒(méi)有寫完相應(yīng)內(nèi)容,每返回的是每次的寫入(byte型)內(nèi)容;
2)如果寫到內(nèi)容結(jié)尾喇闸,返回-1;
write方法按照接收參數(shù)方法分類可以分為:
1)public void write(byte b[])接受一個(gè)數(shù)組對(duì)象询件,將數(shù)組中對(duì)象中的內(nèi)容輸出到文件中燃乍。
2)public void write(byte b[], int off, int len),將數(shù)組中的off角標(biāo)開(kāi)始后的len個(gè)字節(jié)寫入宛琅。
3)public void write()不接收任何對(duì)象刻蟹,每次寫入一個(gè)字節(jié)8byte數(shù)據(jù)。
用1)相比于3)可以提高效率嘿辟,
(3)寫完后需要close()關(guān)閉輸出流舆瘪。
(4)例子:
// 第一步指定輸出流位置
File file = new File("d:\\text.txt");
//使用FileOutputStream創(chuàng)建輸出流
FileOutputStream out = new FileOutputStream(file);
//指定寫入數(shù)據(jù)片效,注意write方法只接受byte[],如果是其他類型變量需要先存儲(chǔ)在byte數(shù)組內(nèi)
byte[] ob = "hallo java!".getBytes();
//調(diào)用write方法寫入數(shù)據(jù)
out.write(ob);
out.close();
注意:如果采用上述FileOutputStream方法英古,多次寫入會(huì)覆蓋原來(lái)的文件內(nèi)容淀衣。如果不想覆蓋可采用第二個(gè)構(gòu)造方法,并設(shè)置append參數(shù)為true召调;
-
FileOutputStream(文件輸入流)操作對(duì)象也是一個(gè)文件膨桥。
(1)構(gòu)造函數(shù)
1.FileInputStream(File file);
2.FileInputStream(String name);
(2)讀方法read()
1)如果沒(méi)有讀到文件內(nèi)容結(jié)尾,每返回的是每次的讀入的(byte型)內(nèi)容唠叛;
2)如果讀到到文件內(nèi)容結(jié)尾国撵,返回-1;
read()方法重載類型:
1)public int read(byte b[])接受一個(gè)數(shù)組對(duì)象玻墅,每次從文件中讀取相應(yīng)byte[]數(shù)組大小的內(nèi)容。
2)public int read(byte b[], int off, int len)壮虫,每次從文件中讀取len長(zhǎng)度的內(nèi)容到byte數(shù)組中澳厢,并且從byte數(shù)組的off處開(kāi)始存儲(chǔ)。
3)public int read()不接收任何對(duì)象囚似,每次寫入一個(gè)字節(jié)8bit數(shù)據(jù)剩拢。
用1)相比于3)可以提高效率,
返回值為每次讀入的長(zhǎng)度而不是文件中內(nèi)容的二進(jìn)制數(shù)據(jù)
(3)寫完后close()饶唤,關(guān)閉輸入流徐伐;
inputStream的read()雖然返回int,但由于此類是面向字節(jié)流的募狂,一個(gè)字節(jié)占8個(gè)位办素,所以返回 0 到 255** 范圍內(nèi)的 int 字節(jié)值。如果因?yàn)橐呀?jīng)到達(dá)流末尾而沒(méi)有可用的字節(jié)祸穷,則返回值 -1性穿。因此對(duì)于不能用0-255來(lái)表示的值就得用字符流來(lái)讀取雷滚!比如說(shuō)漢字.
Reader類的read()方法返回類型為int :作為整數(shù)讀取的字符(占兩個(gè)字節(jié)共16位)需曾,范圍在 **0 到 65535 之間 (0x00-0xffff),如果已到達(dá)流的末尾祈远,則返回 -1
(4)例子
// 第一步指定輸出流位置
File file = new File("d:\\text.txt");//hello java!
long length = file.length();
//使用FileInputStream創(chuàng)建輸出流
FileInputStream in = new FileInputStream(file);
//指定一次讀取多長(zhǎng)的數(shù)據(jù)
byte[] ib = new byte[(int) length];
//循環(huán)讀取文件內(nèi)容
int len = 0;
while((len = in.read(ib)) != -1){
System.out.println(len);//len = 11
}
System.out.println(len);//len = -1