日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

android I/0流操作文件(文件存儲)

瀏覽:38日期:2022-09-18 08:34:02
目錄文件存儲I/0流操作文件總結文件存儲

文件存儲方式不受類型限制,可以將一些數據直接以文件的形式保存在設備中,例如文本文件、PDF ,音頻,圖片等。存儲類型復雜的數據時,通常采用文件存儲。Java提供一套完整的I/О流體系,通過I/О流可以非常方便地訪問磁盤中的文件,同樣Android 也支持I/O流方式來訪問手機等移動設備中的存儲文件。

I/0流操作文件

進行I/О流操作文件時,需要先獲得文件的輸人流和輸出流。在Android應用程序中,可以通過上下文環境Context對象提供的openFileInput()和 openFileOuput()兩個方法分別來獲得文件的輸入流和輸出流,這兩個方法的具體介紹如下。

FilelnputStream openFileInput(String name): 用于獲取應用程序的數據文件夾下指定name文件名的標準文件輸入流,以便讀取設備中的文件。 FileOutputStream openFileOuput(String name, int mode): 用于獲取應用程序的數據文件夾下指定name文件名的標準文件輸出流,以便將數據寫入設備的文件中。

其中 openFileOutput()方法的第二個參數mode用于指定輸出流的模式,即打開文件進行操作的模式。Context類中提供了4個靜態常量用于表示不同的輸出模式,如下表所示。

4種文件讀寫模式

模式 功能描述 Context.MODE_PRIVATE 私有模式,該模式所創建的文件都是私有文件,只能被應用本身所訪問。因此,該模式下所寫入的內容會覆蓋原來文件的內容 Context. MODE_APPEND 附加模式,該模式首先會檢查文件是否存在,若文件不存在,則創建新文件;若文件存在,則在原文件的末尾追加內容 Context.MODE_WORLD_READABLE 可讀模式,該模式的文件可以被其他應用程序讀取 Context.MODE_WORLD_WRITABLE 可寫模式,該模式的文件可以被其他應用程序讀寫

除此之外,Context上下文對象還提供了一些方法來訪問應用程序的數據文件夾,如下表所示。

訪問數據文件夾的方法

方法 功能描述 File getDir(String name, int mode) 在應用程序的數據文件夾下獲取或創建name對應的子目錄 File getFilesDir() 獲取應用程序的數據文件夾的絕對路徑 String[] fileList() 返回應用程序的數據文件夾下的所有文件 boolean deleteFile( String name) 刪除應用程序的數據文件夾下的指定文件

下面通過代碼演示如何使用I/O流對文件進行讀寫操作

創建xml布局文件

android I/0流操作文件(文件存儲)

android I/0流操作文件(文件存儲)

xml布局代碼如下

<?xml version='1.0' encoding='utf-8'?><!-- 線性布局,寬度高度適應屏幕變化,水平方向垂直 --><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical'> <!-- 編輯輸入框,寬度適應線性布局變化,高度適應自己,設置顯示行數為四行 --> <EditTextandroid: android:layout_width='match_parent'android:layout_height='wrap_content'android:lines='4'/> <!-- 保存文件按鈕,寬度,高度適應自己,按鈕文本顯示--> <Buttonandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:text='保存文件'/> <!-- 編輯顯示框,寬度適應線性布局變化,高度適應自己,設置光標不可見,不可編輯,行數為4--> <EditTextandroid: android:layout_width='match_parent'android:layout_height='wrap_content'android:cursorVisible='false'android:editable='false'android:lines='4'/> <!-- 讀取文件按鈕寬度,高度適應自己,按鈕文本顯示--> <Buttonandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:text='讀取文件'/></LinearLayout>

上述界面布局比較簡單,只包含兩個文本框和兩個按鈕,分別用于保存文件和讀取文件兩種操作。

接著創建Activity程序

android I/0流操作文件(文件存儲)

android I/0流操作文件(文件存儲)

activity代碼如下

package com.example.wenjiancuncu;import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintStream;public class FileIOActivity extends AppCompatActivity { private EditText editFileIn, editFileOut; //聲明兩個文本框 private Button btnRead, btnWrite; //聲明兩個按鈕 final String FILE_NAME = 'qstIO.txt'; //指定文件名 @Override //重寫父類方法 public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); //調用父類方法setContentView(R.layout.activity_file_io); //設置布局//獲取兩個文本框editFileIn = (EditText) findViewById(R.id.editFileIn);editFileOut = (EditText) findViewById(R.id.ediFileOut);//獲取兩個按鈕Button btnRead = (Button) findViewById(R.id.btnRead);Button btnWrite = (Button) findViewById(R.id.btnWrite);//以匿名類的形式設置btnRead按鈕的事件監聽器btnRead.setOnClickListener(new View.OnClickListener() { @Override //重寫接口方法 public void onClick(View v) {//讀取指定文件中的內容,并在editFileIn文本框中顯示出來editFileIn.setText(read()); }});//以匿名類的形式設置btnWrite按鈕的事件監聽器btnWrite.setOnClickListener(new View.OnClickListener() { @Override //重寫接口方法 public void onClick(View v) {write(editFileOut.getText().toString()); //將editFileOut中的內容寫入文件中editFileOut.setText(''); //清空editFileOut文本框中的內容 }}); } private String read() {try { FileInputStream fis = openFileInput(FILE_NAME); //打開文件輸入流 byte[] buff = new byte[1024]; //定義一個字節緩存數組 int hasRead = 0; StringBuilder sb = new StringBuilder(''); //創建可變字符串 //讀取文件內容 while ((hasRead = fis.read(buff)) > 0) {//把字節數組轉化為字符串并添加到可變字符串中sb.append(new String(buff, 0, hasRead)); } fis.close(); //關閉文件輸入流 return sb.toString(); //返回一個字符串}catch (Exception e) { e.printStackTrace();}return null; } private void write(String content) {try { //以追加模式打開文件輸出流 FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_APPEND); PrintStream ps = new PrintStream(fos); //將FileOutStream包裝成PrintStream ps.println(content); //輸出文件內容 ps.close(); //關閉文件輸出流 //使用Toast顯示保存成功 Toast.makeText(FileIOActivity.this,'保存成功', Toast.LENGTH_LONG).show();}catch (Exception e) { e.printStackTrace();} }}

上述代碼的核心操作就是文件的保存和讀取,其中read()和 write()兩個方法分別用于讀文件和寫文件操作;代碼中分別對btnRead 和 btnWrite按鈕設置了事件監聽器,并在事件處理方法中調用相應的read()或write()方法實現文件的讀取或保存。

在AndroidMainfest中聲明Activity

android I/0流操作文件(文件存儲)

運行結果

android I/0流操作文件(文件存儲)

Android應用程序的數據文件默認保存在/data/data/包名/files目錄下。在 AndroidDevice Monitor的 File Explorer選項卡中,展開/data/data/com. 包名/files目錄,在該目錄下可以看到保存的qstIO.txt 數據文件,如下圖所示。

android I/0流操作文件(文件存儲)

android I/0流操作文件(文件存儲)

android I/0流操作文件(文件存儲)

總結

這篇關于微信demo的文章就到這里了,希望大家可以多多關注好吧啦網的更多精彩內容!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品99国产精品日本| 精品视频在线观看网站| 日韩电影免费网站| 老鸭窝一区二区久久精品| 中文字幕av一区二区三区人| 在线精品小视频| 最新日韩欧美| 亚洲深深色噜噜狠狠爱网站| 水蜜桃久久夜色精品一区的特点 | 六月丁香综合| 精品1区2区3区4区| 日韩三区在线| 欧美久久精品一级c片| 日韩亚洲国产欧美| 日韩精品一二三四| 亚洲精品日本| 国产精品啊v在线| 日韩国产欧美| 亚洲女同中文字幕| 亚洲少妇一区| 91国内精品| 国产+成+人+亚洲欧洲在线| 美女av在线免费看| 免费毛片在线不卡| 亚洲精品伊人| 97精品国产福利一区二区三区| 国产精品二区不卡| 国产在线成人| 亚洲91网站| 国产一区二区三区久久 | 99riav1国产精品视频| 蜜桃视频一区二区| 精品视频一区二区三区在线观看| 日韩一区二区三区免费播放| 视频一区二区中文字幕| 久久国产麻豆精品| 99久久激情| 国产精品久av福利在线观看| 激情综合网址| 日本中文字幕一区二区视频| 色偷偷色偷偷色偷偷在线视频| 蜜桃伊人久久| 色婷婷狠狠五月综合天色拍| 免费成人在线影院| 日本高清不卡一区二区三区视频| 免费日韩av片| 999精品一区| 久久影院资源站| 日韩精品免费一区二区夜夜嗨 | 另类专区亚洲| 免费欧美在线视频| 激情丁香综合| 欧美亚洲日本精品| 久久精品人人| 久久国产免费看| 亚洲精品女人| 亚洲三级观看| 亚洲人成毛片在线播放女女| 久久久久免费av| 欧美成人a交片免费看| 卡一卡二国产精品| 久久99视频| 精品亚洲二区| 国产精品自在| 国产欧美一级| 日本不卡高清| 日韩动漫一区| 日韩高清不卡一区二区| 在线免费观看亚洲| 婷婷综合成人| 日韩精品午夜视频| 久久国产精品免费一区二区三区| 日韩综合小视频| 日本免费在线视频不卡一不卡二| 少妇精品在线| 久久狠狠亚洲综合| 国产成人黄色| 国产精品毛片在线| 国产视频一区二| 国产传媒在线| 欧美日韩第一| 色8久久久久| 成年男女免费视频网站不卡| 伊人久久成人| 麻豆视频一区| 久久成人精品| 福利在线免费视频| 日本伊人午夜精品| 欧美sm一区| 日韩在线黄色| 精品精品99| 伊人精品一区| 亚洲婷婷丁香| 国产美女精品视频免费播放软件| 欧美日韩亚洲一区在线观看| 国产视频一区二区在线播放| 久久不见久久见免费视频7 | 国产欧美日韩一区二区三区四区| 日韩精品三级| 久久伊人国产| 欧美激情日韩| 成人久久一区| 另类av一区二区| 欧美激情视频一区二区三区在线播放| 久久久久久婷| 水野朝阳av一区二区三区| 国产精选一区| 亚洲一区二区网站| 欧美日韩亚洲一区二区三区在线| 国产粉嫩在线观看| 视频一区视频二区中文| 久久久久亚洲精品中文字幕| 日韩亚洲精品在线观看| 天堂√中文最新版在线| 亚洲成av在线| 欧美午夜三级| 国产精品普通话对白| 国产一区二区三区四区| 中文不卡在线| 日韩国产91| 欧美/亚洲一区| 国产精品综合| 亚洲激情欧美| 91亚洲自偷观看高清| 日韩不卡手机在线v区| 亚洲精品一二三区区别| 国产在线一区不卡| 国产欧美综合一区二区三区| 日韩理论视频| 国产福利一区二区精品秒拍| 亚洲乱亚洲高清| 久久狠狠久久| 亚洲一区国产| 婷婷综合成人| 欧美日韩日本国产亚洲在线 | 青青久久av| 综合国产精品| 日韩精品免费一区二区夜夜嗨| 精品伊人久久| 日韩免费福利视频| 国产美女亚洲精品7777| 亚洲精品麻豆| 亚洲大全视频| 欧美+日本+国产+在线a∨观看| 激情久久99| 国产精品99久久免费| 亚洲一二av| 成人在线超碰| 精品91久久久久| 蜜臀久久99精品久久久久久9| 欧洲亚洲一区二区三区| 久久精品天堂| 久久精品国产久精国产爱| 欧美精品97| 国产不卡一区| 成人羞羞视频播放网站| 精品成人免费一区二区在线播放| 午夜欧美巨大性欧美巨大| 欧美一区二区三区高清视频| 亚洲欧美日本日韩| 日韩精品久久久久久久软件91| 欧美精品中文| аⅴ资源天堂资源库在线| 亚洲午夜一级| 青青青免费在线视频| 97se综合| 自拍日韩欧美| 日韩高清不卡一区| 国产 日韩 欧美 综合 一区| 九色porny丨国产首页在线| 四虎国产精品免费观看| 欧美日韩亚洲在线观看| 丝袜美腿亚洲色图| 国产九九精品| 国产精品传媒麻豆hd| 日韩精品一区二区三区免费观影 | 国产亚洲综合精品| 9国产精品视频| 欧美一级全黄| 日韩.com| 亚洲三级毛片| 午夜国产精品视频免费体验区| 婷婷亚洲综合| 国产乱码精品| 国产黄大片在线观看| 尤物在线精品| 午夜宅男久久久| 国际精品欧美精品| 蜜臀久久久久久久| 欧美gv在线| 国产精品毛片aⅴ一区二区三区| 婷婷成人在线| 日本一区二区三区中文字幕| 日韩欧美一区二区三区在线观看 | 国模大尺度视频一区二区| 视频一区二区国产| 亚洲婷婷免费| 亚洲黄色中文字幕| 国产精品对白久久久久粗| 亚洲欧美网站在线观看|