亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android 數據存儲之 FileInputStream 工具類及FileInputStream類的使用

2020-04-11 11:19:35
字體:
來源:轉載
供稿:網友

安卓的三種本地的典型數據存儲方式

SharedPreferences

以文件格式保存在本地存儲中

SQL數據庫

這篇文章就是講解一下如何使用 SharedPreferences 保存文件。主要解釋什么都寫在注釋里面的。

IDE : Android Studio

參考文章://www.49028c.com/article/74215.htm

絮叨一下:本來文件操作這一塊上周就想把其弄懂,然后繼續進一步的學習。但是因為官方的 Android Training 之中的概念太過于繁雜。導致我認為存儲到內部之中要查詢空間,得到返回之類。結果是因為我把保存在內部空間(data目錄下的包名下的file文件夾)與外部空間(存儲空間)的概念混淆。所以耽誤了大量時間并且不得法。最后還是看到參考文章才知道應該怎么去寫。然后自己跟著參考文章過了一遍。

同樣的,我采用了分離寫法,也就是創建一個工具類,模塊化方便使用。希望能幫助到別人,也是給自己建立一種概念。

話不多說,上代碼:

import android.content.Context;import android.util.Log;import java.io.FileInputStream;import java.io.FileOutputStream;/*** Created by zhizhao on 2015/11/1 0001 in 16:00.*/public class UsingFileInputStream {private Context fileContext;private String fileName;private String fileUserName;private String filePassword;public UsingFileInputStream(String name, Context context, String userName, String password) {this.fileName = name;this.fileContext = context;this.fileUserName = userName;this.filePassword = password;}//保存的時候是在文件內容中連續寫入,也就是在之前保存的數據基礎上再次寫入。public void writeFileInputStream() {try {FileOutputStream fileOutputStream = fileContext.openFileOutput(fileName,fileContext.MODE_PRIVATE);byte[] byteUserName = fileUserName.getBytes();byte[] bytePassword = filePassword.getBytes();fileOutputStream.write(byteUserName);fileOutputStream.write(bytePassword);Log.v("FileInputStream保存結果 ", "UserName = " + fileUserName + " Password = " + filePassword);fileOutputStream.flush();fileOutputStream.close();} catch (Exception e) {e.printStackTrace();}}//讀取文件是把整個文件的內容進行讀取。如果要加入解析,則保存的時候保存為特殊格式。public void readFileInputStream() {try {FileInputStream fileInputStream = fileContext.openFileInput(fileName);int len = fileInputStream.available();byte[] buffer = new byte[len];fileInputStream.read(buffer);Log.v("讀取到的文件為:", ""+new String(buffer));fileInputStream.close();} catch (Exception e) {e.printStackTrace();}}}

下面是使用:

private void writeFile(){UsingFileInputStream fileInputStream = new UsingFileInputStream("account",MySaveDataActivity.this, userName, userPass);fileInputStream.writeFileInputStream();tvReadInformation.setText("保存成功!" + "/n UserName = " + userName + "/n UserPass = " + userPass);}private void readFile(){UsingFileInputStream fileInputStream = new UsingFileInputStream("account",MySaveDataActivity.this, userName, userPass);fileInputStream.readFileInputStream();tvReadInformation.setText("讀取成功!"+"/n UserName = "+userName+"/n UserPass = "+userPass);}

總結一下:

我覺得自己目前寫的也不是很對,很完美。因為在調用過程中要反復去填寫文件名,傳入值。并且在返回值之中很難知道成功失敗。

況且我并沒有把文件異常捕獲并進行操作,因為如果是沒有文件的情況下去操作的話,必然會報錯:空指針異常。

不過既然是練習也就沒考慮那么多,因為這種時候只要在 try{}catch(){} 代碼塊里面加入自己的操作手段就可以了。

下面還有點時間接著給大家介紹Android FileInputStream類的使用

1.FileInputStream類概述

    繼承關系:

       java.io.FileInputStream->java.io.InputStream->java.lang.Object

實現接口:

       Closeable    

 類的功能:

    FileInputStream 從文件系統中的某個文件中獲取輸入字節。哪些文件可用取決于主機環境。

       FileInputStream 用于讀取諸如圖像數據之類的原始字節流。要讀取字符流,請考慮使用 FileReader。

2.類的屬性和行為

   (1) public void close() throws IOException

    功能:  關閉此文件輸入流并釋放與此流有關的所有系統資源。

            如果此流有一個與之關聯的通道,則關閉該通道。

    指定者:接口 Closeable 中的 close

    覆蓋:  類 InputStream 中的 close

    拋出:  IOException - 如果發生 I/O 錯誤。

   (2) public int read() throws IOException

    功能:  從此輸入流中讀取一個數據字節。如果沒有輸入可用,則此方法將阻塞。

    指定者:類 InputStream 中的 read

    返回:  下一個數據字節;如果已到達文件末尾,則返回 -1。

    拋出:  IOException - 如果發生 I/O 錯誤。

   (3) public int read(byte[] b) throws IOException

    功能:從此輸入流中將最多b.length個字節的數據讀入一個字節數組中。在某些輸入可用前,此方法將阻塞

    覆蓋:類 InputStream 中的 read

    參數:b - 存儲讀取數據的緩沖區

    返回:讀入緩沖區的字節總數,如果因為已經到達文件末尾而沒有更多的數據,則返回 -1。

    拋出:IOException - 如果發生 I/O 錯誤。

   (4) public int read(byte[] b, int off, int len) throws IOException

    功能:從此輸入流中將最多len個字節的數據讀入一個字節數組中。在某些輸入可用之前,此方法將阻塞。

    覆蓋:類 InputStream 中的 read

    參數:b - 存儲讀取數據的緩沖區。

          off - 數據的起始偏移量。

          len - 讀取的最大字節數。

    返回:讀入緩沖區的字節總數,如果因為已經到達文件末尾而沒有更多的數據,則返回 -1。

    拋出:IOException - 如果發生 I/O 錯誤。

3.常見錯誤

   在eclipse下使用FileInputStream,提示找不到指定文件

   代碼:

 filename = "abc.txt" ;  FileInputStream fis = new FileInputStream(filename);

   錯誤顯示:

 java.io.FileNotFoundException: dbconfig.properties (系統找不到指定的文件。)  at java.io.FileInputStream.open(Native Method)  at java.io.FileInputStream.<init>(FileInputStream.java:106)  at java.io.FileInputStream.<init>(FileInputStream.java:66)

   解決方法:

       因為eclipse下運行main程序時,eclipse會自動將發布目錄作為其根目錄,所以會提示找不到文件,將filename改為絕對目錄即可

      filename = "/sdcard/.../abc.txt" ;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美天天综合色影久久精品| 日韩av成人在线观看| 亚洲视屏在线播放| 亚洲精品黄网在线观看| www.午夜精品| 国内精品小视频在线观看| 懂色av一区二区三区| 亚洲精品免费在线视频| 国产成人亚洲精品| 亚洲成**性毛茸茸| 国产精品久久久久一区二区| 成人免费网站在线看| 亚洲第一色在线| 久久久精品国产| 欧美专区第一页| 国产精品爽黄69天堂a| 亚洲国产精品久久久久秋霞蜜臀| 一区二区三区久久精品| 亚洲伊人第一页| 日韩欧美在线字幕| 欧美精品videosex极品1| 亚洲精品日韩丝袜精品| 日韩在线高清视频| 日韩电影大全免费观看2023年上| 欧美一级成年大片在线观看| 日韩免费在线电影| 欧美丝袜美女中出在线| 97国产suv精品一区二区62| 国产精品自拍偷拍视频| 日韩激情第一页| 欧美一级视频在线观看| 国产精品午夜国产小视频| 欧美日韩中国免费专区在线看| 第一福利永久视频精品| 亚洲欧美日韩一区二区在线| 青青草国产精品一区二区| 亚洲男人天堂久| 久久亚洲精品毛片| 日本精品视频在线| 色综合老司机第九色激情| 欧美在线xxx| 97精品视频在线播放| 久久久久五月天| 欧美日韩国产第一页| 97久久精品在线| 4438全国亚洲精品在线观看视频| 亚洲乱码国产乱码精品精天堂| 欧美一级电影久久| 91po在线观看91精品国产性色| 久久香蕉国产线看观看网| 久久99精品久久久久久青青91| 亚洲福利精品在线| 日本高清不卡在线| 国产亚洲一区精品| 国产成人中文字幕| 欧美视频在线观看免费网址| 欧美专区第一页| 欧美一级高清免费播放| 黄色91在线观看| 日韩禁在线播放| 97国产精品免费视频| 久久av在线看| 57pao国产精品一区| 国产成人久久久精品一区| 欧美久久精品一级黑人c片| 亚洲精品永久免费| 性色av一区二区三区| 国产精品99久久久久久www| 欧美大片大片在线播放| 欧美国产亚洲视频| 永久免费毛片在线播放不卡| 色偷偷综合社区| 欧美黑人一级爽快片淫片高清| 一区二区三区美女xx视频| 欧美一级片免费在线| 国产日韩视频在线观看| 国产视频一区在线| 中文字幕无线精品亚洲乱码一区| 国产精品第一区| 日韩av综合网| 日韩一区二区久久久| 亚洲国产精品99久久| 日本精品久久久| 国产精品免费一区二区三区都可以| 国产日韩欧美综合| 国产精品成人免费视频| 国产精品扒开腿做| 午夜美女久久久久爽久久| 91久久精品国产91久久| 久久久精品国产一区二区| 国产精品十八以下禁看| 日韩欧美黄色动漫| 中文欧美日本在线资源| 国产中文字幕日韩| 欧美亚洲国产成人精品| 91精品国产精品| 国产精品白丝av嫩草影院| 成人免费在线视频网站| 国产成人一区二区三区小说| 亚洲高清不卡av| 亚洲成成品网站| 国产91精品在线播放| 97免费中文视频在线观看| 国产成人欧美在线观看| 久热99视频在线观看| 欧美在线视频免费| 国产亚洲视频在线| 国产成人精彩在线视频九色| 国产精品pans私拍| 国内精品久久久久| 亚洲女同性videos| 亚洲va欧美va国产综合剧情| 欧美—级a级欧美特级ar全黄| 韩国v欧美v日本v亚洲| 国产欧美亚洲精品| 97热在线精品视频在线观看| 97精品国产aⅴ7777| 日韩精品视频中文在线观看| 国产z一区二区三区| 在线视频欧美日韩| 欧美性极品xxxx做受| 国产99在线|中文| 欧美刺激性大交免费视频| 国产精品爽爽ⅴa在线观看| 亚洲专区中文字幕| 亚洲2020天天堂在线观看| 精品久久久久久久久久久| 国产女人精品视频| 成人羞羞国产免费| 国产97在线|日韩| 亚洲女同性videos| 欧美老少做受xxxx高潮| 久久天天躁狠狠躁老女人| 欧美性极品少妇精品网站| 青青草国产精品一区二区| 亚洲jizzjizz日本少妇| 91精品久久久久久久久中文字幕| 国内精品久久久久久影视8| 久久久女人电视剧免费播放下载| 国产精品视频自在线| 亚洲一区二区中文| 欧美日韩国产在线| 日韩中文在线中文网在线观看| 欧美激情久久久| 日韩精品视频在线观看免费| 欧美成人剧情片在线观看| 亚洲国产成人精品一区二区| 中文字幕不卡在线视频极品| 亚洲自拍小视频免费观看| 日韩av在线播放资源| 69av在线播放| 一区二区欧美亚洲| 青青久久aⅴ北条麻妃| 亚洲精品美女久久久| 欧美精品少妇videofree| 欧美日韩国产第一页| 欧美日韩福利在线观看| 992tv成人免费影院| 国产欧美日韩中文| 亚洲视频777| 国产欧美 在线欧美| 性色av一区二区咪爱| 日本中文字幕久久看| 国产91精品高潮白浆喷水|