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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

I/0流操作文件

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

FilelnputStream openFileInput(String name): 用于獲取應(yīng)用程序的數(shù)據(jù)文件夾下指定name文件名的標(biāo)準(zhǔn)文件輸入流,以便讀取設(shè)備中的文件。 FileOutputStream openFileOuput(String name, int mode): 用于獲取應(yīng)用程序的數(shù)據(jù)文件夾下指定name文件名的標(biāo)準(zhǔn)文件輸出流,以便將數(shù)據(jù)寫入設(shè)備的文件中。

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

4種文件讀寫模式

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

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

訪問數(shù)據(jù)文件夾的方法

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

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

創(chuàng)建xml布局文件

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

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

xml布局代碼如下

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

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

接著創(chuàng)建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; //聲明兩個(gè)文本框 private Button btnRead, btnWrite; //聲明兩個(gè)按鈕 final String FILE_NAME = 'qstIO.txt'; //指定文件名 @Override //重寫父類方法 public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); //調(diào)用父類方法setContentView(R.layout.activity_file_io); //設(shè)置布局//獲取兩個(gè)文本框editFileIn = (EditText) findViewById(R.id.editFileIn);editFileOut = (EditText) findViewById(R.id.ediFileOut);//獲取兩個(gè)按鈕Button btnRead = (Button) findViewById(R.id.btnRead);Button btnWrite = (Button) findViewById(R.id.btnWrite);//以匿名類的形式設(shè)置btnRead按鈕的事件監(jiān)聽器btnRead.setOnClickListener(new View.OnClickListener() { @Override //重寫接口方法 public void onClick(View v) {//讀取指定文件中的內(nèi)容,并在editFileIn文本框中顯示出來editFileIn.setText(read()); }});//以匿名類的形式設(shè)置btnWrite按鈕的事件監(jiān)聽器btnWrite.setOnClickListener(new View.OnClickListener() { @Override //重寫接口方法 public void onClick(View v) {write(editFileOut.getText().toString()); //將editFileOut中的內(nèi)容寫入文件中editFileOut.setText(''); //清空editFileOut文本框中的內(nèi)容 }}); } private String read() {try { FileInputStream fis = openFileInput(FILE_NAME); //打開文件輸入流 byte[] buff = new byte[1024]; //定義一個(gè)字節(jié)緩存數(shù)組 int hasRead = 0; StringBuilder sb = new StringBuilder(''); //創(chuàng)建可變字符串 //讀取文件內(nèi)容 while ((hasRead = fis.read(buff)) > 0) {//把字節(jié)數(shù)組轉(zhuǎn)化為字符串并添加到可變字符串中sb.append(new String(buff, 0, hasRead)); } fis.close(); //關(guān)閉文件輸入流 return sb.toString(); //返回一個(gè)字符串}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); //輸出文件內(nèi)容 ps.close(); //關(guān)閉文件輸出流 //使用Toast顯示保存成功 Toast.makeText(FileIOActivity.this,'保存成功', Toast.LENGTH_LONG).show();}catch (Exception e) { e.printStackTrace();} }}

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

在AndroidMainfest中聲明Activity

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

運(yùn)行結(jié)果

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

Android應(yīng)用程序的數(shù)據(jù)文件默認(rèn)保存在/data/data/包名/files目錄下。在 AndroidDevice Monitor的 File Explorer選項(xiàng)卡中,展開/data/data/com. 包名/files目錄,在該目錄下可以看到保存的qstIO.txt 數(shù)據(jù)文件,如下圖所示。

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

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

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

總結(jié)

這篇關(guān)于微信demo的文章就到這里了,希望大家可以多多關(guān)注好吧啦網(wǎng)的更多精彩內(nèi)容!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产另类在线| 欧美日韩一区二区三区四区在线观看 | 日韩欧美二区| 久久永久免费| 日韩美女一区二区三区在线观看| 日本免费一区二区三区四区| 久久99精品久久久野外观看| 久久成人高清| 三上亚洲一区二区| 九一精品国产| 日本不卡视频在线观看| 精品一区电影| 色婷婷久久久| 美女精品网站| 国产精品最新| 久久激情网站| 日本v片在线高清不卡在线观看| 在线人成日本视频| av免费不卡国产观看| 亚洲精品电影| 国产亚洲精品美女久久 | 国产精品av久久久久久麻豆网| 免费在线观看日韩欧美| 久久午夜影视| 国产精品久久久久77777丨| 日韩在线观看| 亚洲精品国模| 色婷婷精品视频| 日韩av不卡一区二区| 亚洲精品永久免费视频| 久久亚洲图片| 色综合五月天| 亚洲精品影视| 999国产精品视频| 日本午夜精品一区二区三区电影| 日韩一区二区免费看| 日本中文字幕不卡| 亚洲va在线| 欧美一级全黄| 国产亚洲毛片| 在线天堂资源www在线污| 亚洲三级精品| 一本大道色婷婷在线| 欧美影院视频| 久久av在线| 欧美精品日日操| 国产亚洲高清一区| 午夜视频精品| 中国字幕a在线看韩国电影| 日韩动漫一区| 久久亚洲电影| 欧美精品一二| 中文字幕在线看片| 亚洲精品婷婷| 午夜日本精品| 蜜桃精品在线| 麻豆成人综合网| 亚洲一区二区三区高清| 国产suv精品一区二区四区视频| 国产精品视频一区二区三区 | 日韩国产专区| 日韩高清不卡一区二区| 欧洲激情综合| 少妇久久久久| 国产中文在线播放| 欧美激情麻豆| 日韩一区二区三区精品 | 亚洲精品在线影院| 伊人精品久久| 国产精品av久久久久久麻豆网| 国产视频一区三区| 国产精品亲子伦av一区二区三区| 国产福利资源一区| 三级在线观看一区二区| 久久人人99| 偷拍精品精品一区二区三区| 精品中文字幕一区二区三区 | 日韩和欧美一区二区| 不卡一区2区| 成人日韩在线观看| 久久精品九色| 国产精品videossex| 欧美日韩一区二区国产| 日韩黄色免费网站| 日韩成人午夜精品| 色综合视频一区二区三区日韩| 久久久久观看| 日韩免费精品| 蜜臀va亚洲va欧美va天堂| 欧美日韩精品免费观看视频完整| 亚洲精品激情| 在线亚洲自拍| 日韩中文字幕区一区有砖一区 | 日本欧美不卡| 捆绑调教日本一区二区三区| 欧美国产美女| 日韩欧美看国产| 久久九九精品| 欧美午夜精品一区二区三区电影| 国产亚洲福利| 精品欧美久久| 99热精品在线| 亚洲日本在线观看视频| 日韩黄色在线观看| 欧美一区二区三区久久精品| 亚洲欧洲专区| 国产精品蜜芽在线观看| 久久久久网站| 日韩国产网站| 欧美日韩在线播放视频| 最新日韩av| 日韩欧美精品一区二区综合视频| 国内一区二区三区| 国产欧美一级| 91成人精品观看| 欧美成人精品一级| 色婷婷色综合| 婷婷综合激情| 日日摸夜夜添夜夜添国产精品| 久久理论电影| 91久久久久| 久久国产日韩欧美精品| 成人国产精品久久| 国户精品久久久久久久久久久不卡| 奇米色欧美一区二区三区| 日本午夜精品久久久久| 国产在线一区不卡| 最新亚洲激情| 欧美一区二区三区久久精品| 国产精品激情| 激情久久婷婷| 欧美精品国产| 国产粉嫩在线观看| 视频在线观看91| 欧美激情麻豆| 日韩午夜精品| 国产精品magnet| 不卡一区综合视频| 国产欧美一区| 狠狠干综合网| 免费在线亚洲欧美| 好看的av在线不卡观看| 国产精品99久久久久久董美香| 视频在线观看国产精品| 国产视频网站一区二区三区| 欧美日韩在线网站| 日韩区一区二| 欧美不卡高清一区二区三区| 亚洲精品在线二区| 一本大道色婷婷在线| 四虎精品永久免费| 精品欧美一区二区三区在线观看| 久久伊人国产| 国产高清一区二区| 欧美国产亚洲精品| 六月丁香综合| av高清不卡| 综合激情网...| av中文字幕在线观看第一页| 蜜桃传媒麻豆第一区在线观看 | 国产亚洲人成a在线v网站| 美日韩一区二区三区| 99综合视频| 日韩精品电影| 国产精品theporn| 亚洲欧美久久精品| 久久高清免费| 国产福利91精品一区二区| 日本亚洲不卡| 国产精品毛片| 亚洲91久久| 欧美激情视频一区二区三区免费| 国产欧美91| 亚洲欧美日韩国产一区二区| 不卡福利视频| 久久99视频| 欧美一级久久| 蜜臀av一区二区三区| 久久理论电影| 国产一区二区三区精品在线观看 | 日韩1区2区3区| 亚洲一级高清| 高潮久久久久久久久久久久久久| 四季av一区二区凹凸精品| 亚洲精品护士| 色综合www| 国产精品777777在线播放 | 国产欧美另类| 综合亚洲自拍| 亚洲午夜久久| 亚洲一区观看| 红桃视频亚洲| 午夜久久tv| 欧美日韩色图| 日韩精品麻豆| 日韩不卡在线| 日韩欧美另类一区二区| 国产成人久久精品麻豆二区 | 国产欧美日韩在线一区二区| 午夜在线精品偷拍|