字節(jié)輸出流 【OutputStream】
將指定字節(jié)信息寫出到目的地。定義字節(jié)輸出流的基本共性功能方法陌僵。此抽象類是字節(jié)輸出流的超類轴合。
public void close();
public void flush();
public void write(byte[] b);
public void write(byte[] b,int off,int len);
文件字節(jié)輸出流 【FileOutputStream】
FileOutputStream extends OutputStream
//構(gòu)造方法
FileOutPutStream(String name);
FilreOutPutStream(File file);
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
byte[] byte0 = {97,98,99,100};
byte[] byte1 = "你好".getBytes(StandardCharsets.UTF_8);
FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\forever\\Desktop\\summer.txt",false);
fileOutputStream.write(97);
fileOutputStream.write(byte0);
fileOutputStream.write(byte1);
System.out.println(Arrays.toString(byte1));
fileOutputStream.close();
}
}
//運行結(jié)果為:在桌面中的summer.txt文件中生成文字:aabcd你好
字節(jié)輸出流的續(xù)寫和換行:
構(gòu)造方法:
FileOutputStream(String name,boolean append);
FileOutputStream(File file,boolean append);
參數(shù):
String name;File file:寫入數(shù)據(jù)的目的地
Boolean append:追加寫的開關(guān):true(創(chuàng)建對象不會覆蓋源文件,繼續(xù)在文件末尾追加寫數(shù)據(jù))碗短;false(創(chuàng)建一個新文件受葛,覆蓋源文件)
換行:
windows:\r\n
Linux:/n
mac:/r
字節(jié)輸入流 【InputStream】
該抽象類是表示字節(jié)輸入流的所有類的超類,可以讀取字節(jié)信息到內(nèi)存中偎谁。他定義了字節(jié)輸入流的基本共性功能方法总滩。
public void close():關(guān)閉此輸入流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源;
public abstract int read():從輸入流讀取數(shù)據(jù)的下一個字節(jié)巡雨;
public int read(byte[] b):從輸入流中讀取一些字節(jié)數(shù)闰渔,并將它們存儲到字節(jié)數(shù)組b中
文件字節(jié)輸入流 【FileInputStream】
jfaca.io.FileInputStream extends InputStream
作用:把硬盤文件中的數(shù)據(jù),讀取到內(nèi)存中使用
構(gòu)造方法:
FileInputStream(String name)
FileInputStream(File file)
參數(shù):讀取文件的數(shù)據(jù)源
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
int len =0;
FileInputStream fileInputStream = new FileInputStream("C:\\Desktop\\summer.txt");
while ((len = fileInputStream.read())!=-1){
System.out.print((char)len);
}
fileInputStream.close();
}
}
布爾表達式(len = fileInputStream.read())!=-1
1铐望、fileInputStream.read():讀取一個字節(jié)
2冈涧、len = fileInputStream.read():把讀取到的字節(jié)賦值給變量len
3茂附、(len = fileInputStream.read())!=-1:判斷變量len是否不等于-1
字節(jié)輸入流一次讀取多個字節(jié)的方法
int read(byte[] b) 從輸入流中讀取一檔數(shù)量的字節(jié),并將其存儲在緩沖區(qū)書中b中督弓。
方法參數(shù):byte[]的作用:存儲每次讀取到的多個字節(jié)营曼,一般把數(shù)組長度定義為1024,或1024的整數(shù)倍
方法的返回值int:讀取的有效字節(jié)個數(shù)
String類的構(gòu)造方法:
String(byte[] bytes):把字節(jié)數(shù)組轉(zhuǎn)換為字符串
String(byte[] bytes, int offset,int length)把字節(jié)數(shù)組的一部分轉(zhuǎn)換為字符串愚隧;offset:數(shù)組的開始索引 length:轉(zhuǎn)換的字節(jié)個數(shù)
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
byte[] bytes = new byte[1024];
int len =0;
FileInputStream fileInputStream = new FileInputStream("C:\\Users\\forever\\Desktop\\新建文本文檔.txt");
while ((len = fileInputStream.read(bytes))!=-1){
System.out.print(new String(bytes,0,len));
}
fileInputStream.close();
}
}
復制文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo01 {
public static void main(String[] args) throws IOException {
byte[] bytes = new byte[1024];
int len = 0;
//讀取文件
FileInputStream fileInputStream = new FileInputStream("C:\\Users\\forever\\Desktop\\新建文本文檔.txt");
//寫入文件
FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\forever\\Desktop\\summer.txt",false);
while ((len = fileInputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0 ,len));
fileOutputStream.write(bytes,0,len);
}
//關(guān)閉資源
fileOutputStream.close();
fileInputStream.close();
}
}