Android的文件讀取與存儲


Java新建文件,然后就可以寫入數據了,但是Android卻不一樣,因為Android是 基於Linux的,我們在讀寫文件的時候,還需加上文件的操作模式

Environment類是一個提供訪問環境變量的類。

android中可以在設備本身的存儲設備或外接的存儲設備中創建用於保存數據的文件。在默認狀態下,文件是不能在不同程序間共享的。

文件存儲數據可以通過openFileOutput方法打開一個文件(如果這個)文件不存在就自動創建這個文件),通過load方法來獲取文件中的

File是通過FileInputStream和FileOutputStream對文件進行操作,

Context提供了如下兩個方法來打開本應用程序的數據文件將讀取的文件IO流。

FileInputStream openFileInput(String name):打開應用程序的數據文件夾下的name文件對應輸入流

FileOutputStream openFileOutput(String name,int mode):打開應用程序的數據文件夾下的name文件對應輸出流。

參數:mode  指定打開文件的模式,該模式支持如下值

MODE_PRIVATE :該文件只能被當前程序讀寫。

MODE_APPEND:以追加方式打開該文件,應用程序可以向該文件中追加內容。

MODE_WORLD_READABLE:該文件的內容可以被其他應用程序讀取。

MODE_WORLD_WRITEABLE:該文件的內容可由其他程序讀、寫。

getDir(String name,int mode):

在應用程序的數據文件夾下獲取或創建name對應的子目錄。

File getFilesDir():

獲取該應用程序的數據文件夾的絕對路徑

讀、寫SD卡上的文件

調用Environment的getExternalStorageDirectory()方法來獲取,外部存儲器

Context的使用

getApplication返回結果為Application,且不同的Activity和Service返回的Application均為同一個全局對象

如果想獲取輸入Edit數據,直接用全局變量xx.getText()來獲取,

File類是文件和目錄的創建、查找和刪除等操作

指定的文件和文件夾,需要指定路徑來表示

可以根據路徑將我們系統中的文件或文件夾封裝成File類型對象

從內存到硬盤里,那是output

從硬盤流向內存操作是輸入 

字節流

  字節輸入流   InputStream

  字節輸出流   OutputStream

字符流

  字符輸入流      Reader

  字符輸出流      Writer

一切皆為字節

java.io.OutputStream抽象類是表示字節輸出流的所有類的超類,將指定的字節信息寫出到目的地

public void close():關閉此輸出流並釋放與此流相關聯的任何系統資源

public void flush():刷新此輸出流並強制任何緩沖的輸出字節被寫出

public void write(byte[] b):將b.length字節數組寫入此輸出流

pubic void write(byte[]b,int off,int len)從指定的字節數組寫入len字節,從偏移量off開始輸出到此輸出流

public statract void write(int b):將指定的字節輸出流

使用流的規律

  1.創建流對象

  2.執行對應的操作(讀、寫)

  3.釋放流對象

public FileOutputStream(File file)創建文件輸出流以寫入由指定的File對象表示的文件

public FileOutputStream(String name)創建文件輸出流指定的名稱寫入文件

BitmapFactory創建Bitmap的幾種方法說明

public static Bitmap decodeByteArray (byte[] data, int offset, int length, BitmapFactory.Options opts)

參數
data    壓縮圖像數據的字節數組
offset  圖像數據偏移量,用於解碼器開始從哪兒解析.
length  字節數,以偏移量開始,去解析
opts    可以為空,控制采樣率和實付圖像完全被解碼的選項,或者僅僅返回大小
返回值
     返回解碼后的位圖,或者如果圖像數據不能被解碼返回為空,或者 如果選項不是空,如果選項要求僅僅返回大小(opts.outWidth and opts.outHeight)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM