大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java文件輸入輸出流,初學者的基礎學習

Java文件輸入輸出流,初學者的基礎學習

更新時間:2020-08-26 15:47:29 來源:動力節點 瀏覽2203次

在Android開發中,文件操作還是比較頻繁的,本文主要記錄下文件的加載,寫入等相關操作的使用。

流的分類

在Java程序中操作文件,都是以流的形式來操作

首先按照流向可以分為輸入流與輸出流兩種,這里的輸入輸出是站在內存的角度而言的,流向內存的為輸入流,流出內存的為輸出流

按照傳輸的單位可以分為字節流與字符流,字節流傳輸的是二進制字節,可操作任何類型的文件,字符流傳輸的是字符,只能用來讀取文本文件

字節流

字節流有兩個抽象的父類,InputStram和outputStream,本文主要記錄文件的操作,其他的具體實現類暫不討論,主要看一下經常使用的幾個字節流實現類的使用。

針對文件操作的字節流主要包括FileInputStream與FileOutputStream

向磁盤寫入文件    

?File?destFile?=?new?File(filePath);
????????????FileOutputStream?fileOutputStream?=?new?FileOutputStream(destFile);
????????????fileOutputStream.write(content.getBytes());
????????????fileOutputStream.close();

寫入文件比較簡單,傳入一個File對象構造FileOutputStream的對象,然后調用write方法即可,最后一定要調用close,釋放資源

從磁盤讀取文件     

FileInputStream?fileInputStream?=?new?FileInputStream(file);
????????????byte[]?bytes?=?new?byte[1024];
????????????int?i;
????????????while((i=fileInputStream.read(bytes))!=-1){
????????????????stringBuilder.append(new?String(bytes,0,i));
????????????}
????????????Log.i(TAG,?stringBuilder.toString());
????????????fileInputStream.close();

相對于從磁盤讀入內存,讀取文件多了幾行代碼,但也很好理解。需要聲明一個byte類型的數組,用于每次讀取時將數據存入該數組,聲明一個整型i用于保存一次讀取到的字節數。最后再根據將字節數組轉換成需要的類型,最后也需要調用close釋放資源

緩沖流

緩沖流相對于上述的字節流字符流并不是一個層面的東西,它并不具備直接操作文件的能力,而是要基于上述的字節流和字符流為基礎。之所以要設計緩沖流這個東西,是為了提高讀寫效率,因為緩沖是利用了將數據先緩存起來,然后再一起寫入或讀出,避免頻繁的磁盤IO操作,提高讀寫速度。

針對字節流的緩沖流類有BufferedoutputStream和BufferedInputStream,實際這兩個類的設計利用了裝飾者模式,利用它可以把FileInputStream與FileOutputStream給包起來,然后操作文件

向磁盤寫入文件

	????FileOutputStream?fileOutputStream?=?new?FileOutputStream(destFile);
????????????BufferedOutputStream?bufferedOutputStream?=?new?BufferedOutputStream(fileOutputStream);
????????????bufferedOutputStream.write(content.getBytes());
????????????bufferedOutputStream.flush();
????????????bufferedOutputStream.close();

使用的邏輯和FileInputStream差不多,只是包了一層,最后還調用了flush,用于刷新,相當于向磁盤寫入一次

從磁盤讀取文件    

?FileInputStream?fileInputStream?=?new?FileInputStream(file);
????????????BufferedInputStream?bufferedInputStream?=?new?BufferedInputStream(fileInputStream);
????????????byte[]?bytes?=?new?byte[1024];
????????????int?i;
????????????while((i=bufferedInputStream.read(bytes))!=-1){
?????????????????stringBuilder.append(new?String(bytes,0,i));
????????????}
????????????fileInputStream.close();
????????????bufferedInputStream.close();

使用方式與FileOutputStream也差不多,只是用BufferedInputStream把他包了起來

字符流

字符流主要包括FileWriter和FileReader,字符緩沖流BufferedWriter,BufferedReader,用法與上述的字節流基本一致,只不過調用read之后獲取到的是字符類型,需要用char類型的數組去接收     

FileReader?fileReader?=?new?FileReader(file);
????????????BufferedReader?bufferedReader?=?new?BufferedReader(fileReader);
????????????char[]?chars?=?new?char[1024];
????????????int?charInt;
????????????while?((charInt?=?bufferedReader.read(chars))!=-1){
????????????????Log.i(TAG,"char:"+new?String(chars,0,charInt));
????????????????stringBuilder.append(new?String(chars,0,charInt));
????????????}
????????????Log.i(TAG,"stringResult?:?"+stringBuilder.toString());
????????????fileReader.close();
????????????bufferedReader.close();

另外在BufferedReader中還提供了readLine方法,按行讀取文本文件    

?FileReader?fileReader?=?new?FileReader(file);
????????????BufferedReader?bufferedReader?=?new?BufferedReader(fileReader);
????????????String?s;
????????????while?((s=bufferedReader.readLine())!=null){
????????????????stringBuilder.append(s);
????????????}
????????????Log.i(TAG,"stringResult?:?"+stringBuilder.toString());
????????????fileReader.close();
????????????bufferedReader.close();

以上就是動力節點java培訓機構的小編針對“Java文件輸入輸出流,初學者的基礎學習”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本aⅴ在线不卡免费观看 日本aaaa | 五月天婷五月天综合网在线 | 日本午夜在线视频 | 精品国产区 | 女性一级全黄生活片在线播放 | 日本一区二区三区高清福利视频 | 天天摸夜夜添久久精品麻豆 | 男女羞羞免费视频 | 五月天婷婷网址 | 精品无人区乱码一区2区3区 | sihu影院永久在线影院 | 国产中文字幕第一页 | 国产一久久香蕉国产线看观看 | 国产成人亚洲精品乱码在线观看 | 99视频精品全部 在线 | 国内精品哆啪啪 | 久久精品亚洲综合 | 日本一级毛片视频网站 | 99精品欧美一区二区三区美图 | 摸一摸操一操 | 欧洲精品在线观看 | 亚洲视频精品在线 | 尤物福利在线 | 天天骑天天射 | 日日操影院 | 国产精品91视频 | 国产资源福利 | 国产露脸系列magnet | 人人鲁免费播放视频人人香蕉 | 久久亚洲一级毛片 | 中国jizz妇女jizz妇女 | 美女很黄很黄免费的 | 天天色天天舔 | 爱我久久国产精品 | 亚洲国产中文在线 | 日韩欧美第一区二区三区 | 亚欧洲精品在线视频免费观看 | 国产一区免费视频 | 97在线观看完整免费 | 黑人巨大精品战中国美女 | 99久久99久久久精品久久 |