1. Android中文件讀寫的原理:
(1).所有文件的儲存都是字節(jié)的儲存。
(2).在磁盤上保留的并不是文件的字符而是先把字符編碼成字節(jié),再儲存這些字節(jié)到磁盤。
(3).在讀取文件(特別是文本文件)時,也是一個字節(jié)一個字節(jié)的讀取以形成字節(jié)序列。
2. 字節(jié)流和字符流的區(qū)別:
(1).字節(jié)流提供了處理任何類型的IO操作的功能,但它不能直接處理Unicode字符,字符流就可以。
(2).字節(jié)流轉(zhuǎn)換成字符流可以用InputStreamReader,OutputStreamWriter。
一般我們在使用的時候通常用字節(jié)流。
3. 文件讀寫的步驟:
(1).首先建立通道。
(2).然后建立數(shù)據(jù)存儲空間。
(3).然后開始讀寫數(shù)據(jù)。
(4).關閉流。
4. 輸入流和輸出流:
(1).輸入流:程序從輸入流讀取數(shù)據(jù)源。數(shù)據(jù)源包括外界(鍵盤、文件、網(wǎng)絡…),即是將數(shù)據(jù)源讀入到程序的通信通道。
(2).輸出流:程序向輸出流寫入數(shù)據(jù)。將程序中的數(shù)據(jù)輸出到外界(顯示器、打印機、文件、網(wǎng)絡…)的通信通道。
代碼如下:
public static byte[] readInputStream(InputStream inputStream) { // 1.建立通道對象 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // 2.定義存儲空間 byte[] buffer = new byte[1024]; // 3.開始讀文件 int len = -1; try { if (inputStream != null) { while ((len = inputStream.read(buffer)) != -1) { // 將Buffer中的數(shù)據(jù)寫到outputStream對象中 outputStream.write(buffer, 0, len); } } // 4.關閉流 outputStream.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } return outputStream.toByteArray(); }
新聞熱點
疑難解答
圖片精選