一:IO流用來處理數據之間的傳輸,Java對數組的數據是用流的方式,Java用於操做流在IO包中 二:流能夠分爲輸入流,和輸出流數組
三:操做類型能夠分爲:①字節流字節流能夠操做任何數據,由於計算機中任何數據都是以字節存在的 ②:字符流能夠操做存在的字符流,這樣比較方便緩存
四:IO流的分類 ①InputStream ②OutputStream 字符流的抽象對象 Reader Writerbash
五:IO程序的書寫 ①使用前,導IO包 ②使用時進行IO異常處理 ③使用後釋放資源spa
//建立輸入流對象
FileInputStream fs=new FileInputStream(「bb.txt」);
int b;
//讀流的過程
while((b=fs.read())!=-1){
System.out.print(b);
}
//切記要記得關流
fs.close();
複製代碼
爲啥要用int值去接受code
由於輸入流能夠操做任意文件,包括圖片,音頻等,這些文件都是已二進制形式存儲在,若是每一次讀取文件都是返回的11111111,是-1的補碼就會中止不讀了,後面的數據讀不到,因此就用int數據去接受。cdn
//在開發中不推薦使用
//建立輸入輸出對象
FileInputStream fis=new FileInputStream("E\\a.txt");
FileOutputStream fos=new FileOutputStream("E:\\b.txt");
//把要讀取的數據放在數組中
byte by= new byte[fis.available];
//讀文件
fis.read(by);
//寫文件
fos.write(by);
fis.close();
fos.close();
複製代碼
//建立字符緩衝流
BufferedInputStream bri=new BufferedInputStream(new FileInputStream("aa.txt"));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("bb.txt"));
int c;
while((c=bri.read())!=-1){
bos.write(c);
}
bri.close();
bos.close();
複製代碼
//close具備刷新功能,在關閉流以前,就會先刷新一次緩衝區,將緩衝區字節所有都刷新在緩衝區上,在關閉close刷完後不能寫了
flush方法?
具有刷新功能,刷完後還能夠繼續寫
FileInputStream filei = new FileInputStream("E:\\rec.avi");
//建立輸出流對象
FileOutputStream fileo = new FileOutputStream("E:\\copy1.avi");
byte arr[]=new byte[1024*8];
int len;
while ((len=filei.read(arr))!=-1){
fileo.write(arr);
}
//close具備刷新功能,在關閉流以前,就會先刷新一次緩衝區,將緩衝區字節所有都刷新在緩衝區上,在關閉
filei.close();
fileo.close();
複製代碼
在控制檯輸入文件路徑, 將文件拷貝到當前目錄下
複製代碼
public static void main(String [] args){
//建立字符緩衝區
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(getFile()));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(getFile().getName()));
int b;
while((b=bis.read())!=-1){
bos.write(b);
}
bis.close();
bos.close();
//用getFile方法區封裝要獲取的路勁
public static File getFile(){
Scanner sc=new Scanner(System.in);
System.out.print("重鍵盤上輸入路徑");
while(true){
String line=sc.nextLine();
File dir=new File(line);
//增長程序的魯邦性
if(!dir.exists()){
System.out.print("你輸入的路徑不存在");
}else if(dir.isDirectory){
System.out.print("你輸入文件目錄,請從新輸入");
}else{
retrun file;
}
}
}
}
}
複製代碼