android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()

最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示。

main.xml

[xhtml] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:<a href="http://lib.csdn.net/base/15" class=‘replace_word‘ title="Android知识库" target=‘_blank‘ style=‘color:#df3434; font-weight:bold;‘>Android</a>="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="请您输入要保存的内容:"
  11. />
  12. <EditText
  13. android:id="@+id/addText"
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. android:hint="请您在此处输入文件内容!"
  17. />
  18. <Button
  19. android:id="@+id/addButton"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="save"
  23. />
  24. <Button
  25. android:id="@+id/showButton"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:text="show"
  29. />
  30. <TextView
  31. android:id="@+id/showText"
  32. android:layout_width="fill_parent"
  33. android:layout_height="wrap_content"
  34. />
  35. </LinearLayout>

activity代码

  1 package dome.file.com.filedome;
  2
  3 import android.content.Context;
  4 import android.support.v7.app.AppCompatActivity;
  5 import android.os.Bundle;
  6 import android.util.Log;
  7 import android.widget.EditText;
  8 import android.widget.TextView;
  9
 10 import java.io.BufferedReader;
 11 import java.io.BufferedWriter;
 12 import java.io.ByteArrayOutputStream;
 13 import java.io.FileInputStream;
 14 import java.io.FileNotFoundException;
 15 import java.io.FileOutputStream;
 16 import java.io.IOException;
 17 import java.io.InputStreamReader;
 18 import java.io.OutputStreamWriter;
 19 import java.io.FileInputStream;
 20 import java.io.FileNotFoundException;
 21 import java.io.FileOutputStream;
 22 import java.io.IOException;
 23
 24 import android.app.Activity;
 25 import android.os.Bundle;
 26 import android.view.View;
 27 import android.view.View.OnClickListener;
 28 import android.widget.Button;
 29 import android.widget.EditText;
 30 import android.widget.TextView;
 31 import android.widget.Toast;
 32
 33 public class MainActivity extends AppCompatActivity {
 34
 35     private EditText editText;
 36     private TextView showTextView;
 37     // 要保存的文件名
 38     private String fileName = "chenzheng_java.txt";
 39
 40     @Override
 41     public void onCreate(Bundle savedInstanceState) {
 42         super.onCreate(savedInstanceState);
 43         setContentView(R.layout.activity_main);
 44         // 获取页面中的组件
 45         editText = (EditText) findViewById(R.id.addText);
 46         showTextView = (TextView) findViewById(R.id.showText);
 47         Button addButton = (Button) this.findViewById(R.id.addButton);
 48         Button showButton = (Button) this.findViewById(R.id.showButton);
 49         // 绑定单击事件
 50         addButton.setOnClickListener(listener);
 51         showButton.setOnClickListener(listener);
 52
 53     }
 54
 55     // 声明监听器
 56     private View.OnClickListener listener = new OnClickListener() {
 57         public void onClick(View v) {
 58             Button view = (Button) v;
 59             switch (view.getId()) {
 60                 case R.id.addButton:
 61                     save();
 62                     break;
 63                 case R.id.showButton:
 64                     read();
 65                     break;
 66
 67             }
 68
 69         }
 70
 71     };
 72
 73     /**
 74      * @author chenzheng_Java
 75      * 保存用户输入的内容到文件
 76      */
 77     private void save() {
 78         BufferedWriter bufferdWriter = null;
 79         String content = editText.getText().toString();
 80         try {
 81             /* 根据用户提供的文件名,以及文件的应用模式,打开一个输出流.文件不存系统会为你创建一个的,
 82              * 至于为什么这个地方还有FileNotFoundException抛出,我也比较纳闷。在Context中是这样定义的
 83              *   public abstract FileOutputStream openFileOutput(String name, int mode)
 84              *   throws FileNotFoundException;
 85              * openFileOutput(String name, int mode);
 86              * 第一个参数,代表文件名称,注意这里的文件名称不能包括任何的/或者/这种分隔符,只能是文件名
 87              *          该文件会被保存在/data/data/应用名称/files/chenzheng_java.txt
 88              * 第二个参数,代表文件的操作模式
 89              *          MODE_PRIVATE 私有(只能创建它的应用访问) 重复写入时会文件覆盖
 90              *          MODE_APPEND  私有   重复写入时会在文件的末尾进行追加,而不是覆盖掉原来的文件
 91              *          MODE_WORLD_READABLE 公用  可读
 92              *          MODE_WORLD_WRITEABLE 公用 可读写
 93              *  */
 94             FileOutputStream outputStream = openFileOutput(fileName,
 95                     Activity.MODE_PRIVATE);
 96             bufferdWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
 97             bufferdWriter.write(content);
 98             Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
 99         } catch (Exception e) {
100             e.printStackTrace();
101         } finally {
102
103             try {
104                 if (bufferdWriter != null) {
105                     bufferdWriter.close();
106                 }
107             } catch (IOException e) {
108                 e.printStackTrace();
109             }
110
111
112         }
113
114     }
115
116     /**
117      * @author chenzheng_java
118      * 读取刚才用户保存的内容
119      */
120     private void read() {
121
122         BufferedReader bufferedReader = null;
123         try {
124             FileInputStream inputStream = this.openFileInput(fileName);
125
126             bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
127             StringBuilder stirngBuidler = new StringBuilder();
128             String line = "";
129             while ((line = bufferedReader.readLine()) != null) {
130                 stirngBuidler.append(line);
131             }
132
133             showTextView.setText(stirngBuidler.toString());
134
135         } catch (Exception e) {
136             e.printStackTrace();
137         } finally {
138
139             try {
140                 if (bufferedReader != null) {
141                     bufferedReader.close();
142                 }
143             } catch (IOException e) {
144                 e.printStackTrace();
145             }
146
147
148         }
149
150     }
151
152 }

其他的都为默认。

关于文件保存的路径可以通过ADT携带的File Explorer工具进行查看。如何调出File Explorer工具呢;我们可以通过Windows--showView--others-android下面看到File Explorer。这里是我的一个截图。

对于这个程序,基本上没什么难点,就是纯粹的java流知识。唯一不同的就是context为我们提供了两个方法来获取输入输出流。简单、方便、快捷啊。

时间: 2024-10-14 00:24:32

android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()的相关文章

Android——文件的保存和读取

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中.可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. MODE_WOR

文件的写入,读取和关闭

我们今天要学的知识是关于文件的写入,读取和关闭.读取写入比较重要,关闭了解一下就好. 1.读取某一行:当我们需要读取某一行字符的时候,我们可以使用readline这个方法,我们也可以对readline进行赋值,这样可以规定最多多去多少个字符.比如lsf文件的某一行的前五个字符是hello,我们输入命令:lsf.readlinr(5),得到的结果就是hello,如果我们想要读取全部行的话,可以使用命令:readlines. 2.写入行:写入行在这里我们使用的方法是writelines,这个方法接受

JavaIO流——简单对文件的写入及读取(三)

已经讲了写入和读取了,那么想要把一个文件的内容复制到另一个文件呢 不说太多,直接见代码 public static void copyFile(String srcFilename, String destFilename) throws IOException { FileReader fReader = new FileReader(srcFilename); FileWriter fWriter = new FileWriter(destFilename); char[] buffer =

android .txt文件的写入,读取,还有复制图片

txt文件的写入: 1 private void save() { 2 FileOutputStream fos = null; 3 String state = Environment.getExternalStorageState();// sd状态 4 if (state.equals(Environment.MEDIA_MOUNTED)) {// 判断sd卡是否可用 5 File root = Environment.getExternalStorageDirectory(); 6 Fi

[转]VC++中对文件的写入和读取

本文转自:http://blog.csdn.net/fanghb_1984/article/details/7425705 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用CStdioFile类. CStdioFile继承自CFile,一个CStdioFile对象代表一个用运行时函数fopen 打开的C 运行时流式文件. C++中的fstream类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O.stream类有两个重要的运算符:插入器(<<)和析

Java file文件的写入和读取

File文件的写入 一.FileWriter 和BufferedWriter 结合写入文件 FileWriter是字符流写入字符到文件.默认情况下,它会使用新的内容代替文件原有的所有内容,但是,当指定一个true值作为FileWriter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾. BufferedWriter:缓冲字符,是一个字符流类来处理字符数据.不同于字节流(数据转换成字节FileOutPutStream),可以直接写字符串.数组或字符数据保存到文件. 默认情况,替

第十七章,txt文件的写入和读取数据结合练习(C++)

#include <iostream> #include <fstream> int main(int argc, char** argv) { std::string str; //--------1.向文件中写入数据-------- std::cout<<"请输入您希望输入的数据,按"回车"键结束."<<std::endl; std::cin>>str; //没有这个文件,会自动创建 std::ofst

python txt文件的写入和读取

1.文件的打开 使用open () 函数 打开文件.他有两个参数,文件路径或文件名和文件的打开方式. "r" 只读模式,不能编辑和删除文件内容. "w" 写入模式,会先将文件之前的内容清空,然后再写入. "a" 追加模式,会将数据添加的之前内容的后面. 如果不给打开方式,默认为只读模式. f=open("test.txt") #默认为只读模式 f=open("test.txt",'r') #只读模式 f=o

文件内部写入及读取(参考疯狂安卓讲义)

参考了参考疯狂安卓讲义的内部读取,这个是标准版答案,做下备份,开始基于这个的改进: 建的工程名为FileTest,包名为com.swust.filetest activity_main.xml代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andr