android 将byte[]保存到手机
生活随笔
收集整理的這篇文章主要介紹了
android 将byte[]保存到手机
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天,講講如何把程序的byte[]保存到手機(jī),并且作為文件可以讀取。
package com.example.edittextresearch;import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();// 假設(shè)這是從服務(wù)器上獲取的數(shù)據(jù),或者其他的什么地方獲取到的。byte[] bytes = "hello world".getBytes();// 根據(jù)byte數(shù)組生成文件,保存到手機(jī)上createFileWithByte(bytes);// 彈出信息提示Toast.makeText(MainActivity.this, "生成文件成功!", Toast.LENGTH_LONG).show();}private String fileName;// 文件命名private void initData() {// TODO Auto-generated method stubfileName = "byte_to_file.doc";}/*** 根據(jù)byte數(shù)組生成文件* * @param bytes* 生成文件用到的byte數(shù)組*/private void createFileWithByte(byte[] bytes) {// TODO Auto-generated method stub/*** 創(chuàng)建File對象,其中包含文件所在的目錄以及文件的命名*/File file = new File(Environment.getExternalStorageDirectory(),fileName);// 創(chuàng)建FileOutputStream對象FileOutputStream outputStream = null;// 創(chuàng)建BufferedOutputStream對象BufferedOutputStream bufferedOutputStream = null;try {// 如果文件存在則刪除if (file.exists()) {file.delete();}// 在文件系統(tǒng)中根據(jù)路徑創(chuàng)建一個(gè)新的空文件file.createNewFile();// 獲取FileOutputStream對象outputStream = new FileOutputStream(file);// 獲取BufferedOutputStream對象bufferedOutputStream = new BufferedOutputStream(outputStream);// 往文件所在的緩沖輸出流中寫byte數(shù)據(jù)bufferedOutputStream.write(bytes);// 刷出緩沖輸出流,該步很關(guān)鍵,要是不執(zhí)行flush()方法,那么文件的內(nèi)容是空的。bufferedOutputStream.flush();} catch (Exception e) {// 打印異常信息e.printStackTrace();} finally {// 關(guān)閉創(chuàng)建的流對象if (outputStream != null) {try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}if (bufferedOutputStream != null) {try {bufferedOutputStream.close();} catch (Exception e2) {e2.printStackTrace();}}}}}
我在代碼中都加了注釋,大家看起來也很簡單。大概講講:
- 首先需要獲取byte類型數(shù)組數(shù)據(jù),這里我是用的假設(shè)的數(shù)據(jù),實(shí)際中大家發(fā)送網(wǎng)絡(luò)請求獲取即可;
- 數(shù)據(jù)拿到后就可以將其寫到文件緩沖輸出流中,然后調(diào)用flush()方法刷出流對象,這樣文件里面就有內(nèi)容了。
> 文件存到手機(jī)上的圖片如下所示:
其實(shí)就是把byte[]通過輸入流寫入到手機(jī),我之前也寫過文件復(fù)制的博客,和這個(gè)功能是類似的。
android 將byte[]保存到手機(jī)就講完了。
就這么簡單。
總結(jié)
以上是生活随笔為你收集整理的android 将byte[]保存到手机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 如何在线程缓存实体类
- 下一篇: android 读取assets文件夹下