电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:2日期: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
相關文章:
主站蜘蛛池模板: 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 361°官方网站 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 西安中国国际旅行社(西安国旅) | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 菏泽知彼网络科技有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 早报网| 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 江西自考网| 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 农产品溯源系统_农产品质量安全追溯系统_溯源系统 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 |