File存储——IO操作文件

openFileOutput、openFileInput

Context提供了如下两个方法来打开本应用程序的数据文件夹里面的文件IO流。

1.FileInputStream openFileInput(String name):打开应用程序中的数据文件夹下的name文件对应输入流

2.FileOutputStream openFileOutput(String name,int mode):打开应用程序的数据文件下的name文件对应的输出流

注意:

FileOutputStream openFileOutput(String name,int mode)中mode参数用于指定打开文件的模式,支持模式如下:

1.MODE_PRIVATE:改文件只能被当前程序读写;

2.MODE_APPEND:以追加的方式打开该文件,应用程序可以向该文件中追加内容;

3.MODE_WORLD_READABLE:该文件的内容可以被其他程序读取(只读);

4.MODE_WORLD_WRITEABLE:该文件的内容可以不其他程序读、写;

除此之外,Context还提供了如下两个方法来访问应用程序的数据文件夹.

1.getDir(String name,int mode):在应用程序的数据文件夹下获取或创建name对应的子目录;

2.File getFilesDir():获取该应用程序的数据文件夹的绝对路径;

3.String[] fileList():返回该应用程序的数据文件夹下的全部文件;

4.deleteFile(String):删除该应用程序的数据文件夹下指定的文件;

实例如下:实现读写应用程序数据文件夹内的文件。

布局文件==》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <Button
android:id="@+id/btnone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="write" /> <EditText
android:id="@+id/edit2"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <Button
android:id="@+id/btnTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="read" /> </LinearLayout> 代码实现==》
package com.example.myfile; import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream; import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; public class MainActivity extends Activity
{
final String FILE_NAME = "crazyit.bin";
EditText Edit1;
EditText Edit2; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); Button btnOne = (Button) this.findViewById(R.id.btnone);
Button btnTwo = (Button) this.findViewById(R.id.btnTwo);
Edit1 = (EditText) this.findViewById(R.id.edit1);
Edit2 = (EditText) this.findViewById(R.id.edit2);
btnOne.setOnClickListener(new MyButtonClick());
btnTwo.setOnClickListener(new MyButtonClick());
} private class MyButtonClick implements OnClickListener
{
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnone:
Log.i("swg", "write==" +Edit1.getText());
write(Edit1.getText().toString());
Edit1.setText("");
break;
case R.id.btnTwo:
Log.i("swg", "read==" +read());
Edit2.setText(read());
break;
}
} 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));
}
return sb.toString();
} catch (Exception e)
{
e.printStackTrace();
}
return null;
} private void write(String content)
{
try
{
// 以追加模式打开文件输出流
FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);
// 将FileOutputStream包装成PrintStream
PrintStream ps = new PrintStream(fos);
// 输出文件内容
ps.println(content);
ps.close();
} catch (Exception e)
{
e.printStackTrace();
}
} } @Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }

运行效果:

android学习笔记46——File存储的更多相关文章

  1. Android 学习笔记之数据存储SharePreferenced+File

    学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取...   一个应用程序,经常需要与用 ...

  2. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  3. Android学习笔记进阶18 之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  4. Android学习笔记进阶18之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  5. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  6. 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件

    目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...

  7. 【转】 Pro Android学习笔记(七五):HTTP服务(9):DownloadManager

    目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csd ...

  8. 【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart

    目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Po ...

  9. 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode

    目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...

随机推荐

  1. Bash 使用技巧

    Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗.相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余. 从历史中执行命令 有时候,我们需要在 Bash 中重复 ...

  2. ZOJ 1205 Martian Addition

    原题链接 题目大意:大数,20进制的加法计算. 解法:convert函数把字符串转换成数组,add函数把两个大数相加. 参考代码: #include<stdio.h> #include&l ...

  3. Hibernate——property的access属性

    public class Customer implements Serializable { private static final long serialVersionUID = 1L;     ...

  4. HDU-5785 Interesting(Manacher算法+区间处理)

    题目大意:给一个字符串,求所有相邻两回文子串的外侧下标之积的和 题目分析:另L[i]为所有以 i 为右端点的回文字串的左端点之和,同理,另R[i]表示所有以 i 为左端点的回文子串的右端点之和.显然, ...

  5. html 绑定

    html 绑定 目的 html绑定到DOM元素上,使得该元素显示的HTML值为你绑定的参数.如果在你的view model里声明HTML标记并且render的话,那非常有用.   例子 <div ...

  6. maven&&gradle

    https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html http://maven.apache. ...

  7. 胶囊碰撞体(CapsuleCollider)

    胶囊碰撞体 (Capsule Collider) 胶囊碰撞体 (Capsule Collider) 由两个半球体与一个圆柱体相连接而构成.它与胶囊 (Capsule) 基元形状相同.   一堆胶囊碰撞 ...

  8. 通过 Javacore 诊断线程挂起等性能问题

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1406_tuzy_javacore/1406_tuzy_jav ...

  9. Tkinter

    单个选项 from Tkinter import * root = Tk() v = IntVar() Radiobutton(root, text="One", variable ...

  10. C# String与string的区别

    C#中同时存在String与string MSDN中对string的说明: string is an alias for String in the .NET Framework.string是Str ...