package com.t20.fileop; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private EditText etContent; private TextView tvContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //输入框 etContent=(EditText) findViewById(R.id.etContent); //文本框 tvContent=(TextView) findViewById(R.id.tvContent); } /** * 写入文件 * @param v */ public void write(View v){ //文件输出流 FileOutputStream out=null; //缓冲写入器 BufferedWriter writer=null; String content=etContent.getText().toString(); if(content.isEmpty()){ Toast.makeText(MainActivity.this, "请输入内容", Toast.LENGTH_SHORT).show(); return; } try { //安卓封装好的文件写入文件方法 out=openFileOutput("data.txt", Context.MODE_PRIVATE);//权限:-rwx------(只能自己读写) writer=new BufferedWriter(new OutputStreamWriter(out)); //------------------文件名-------------写入模式----- //开始写入 writer.write(content); Toast.makeText(MainActivity.this, "文件写入成功!", Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(writer!=null){ writer.close(); } if(out!=null){ out.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 保存文件到SD卡(写入SD卡需要权限,在AndroidManifest.xml中设置android.permission.WRITE_EXTERNAL_STORAGE) * @param v */ public void writeSD(View v){ //文件输出流 FileOutputStream out=null; String content=etContent.getText().toString(); if(content.isEmpty()){ Toast.makeText(MainActivity.this, "请输入内容", Toast.LENGTH_SHORT).show(); return; } //设置文件路径 File file=new File(getExternalFilesDir(null), "/data.txt"); try { out=new FileOutputStream(file); out.write(content.getBytes()); Toast.makeText(MainActivity.this, "成功保存到SD卡!", Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(out!=null){ out.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 读取文件 * @param v */ public void read(View v){ //文件输入流 FileInputStream in=null; //缓冲读取器 BufferedReader reader=null; StringBuilder builder=new StringBuilder(); try { //安卓封装好的文件读取文件方法 in=openFileInput("data.txt"); reader=new BufferedReader(new InputStreamReader(in)); //使用流逐行读取 String line=""; while ((line=reader.readLine())!=null) { builder.append(line); } tvContent.setText(builder.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(reader!=null){ reader.close(); } if(in!=null){ in.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 从SD卡中读取文件(读取SD卡需要权限,在AndroidManifest.xml中设置android.permission.READ_EXTERNAL_STORAGE) * @param v */ public void readSD(View v){ //文件输入流 FileInputStream in=null; //设置文件路径 File file=new File(getExternalFilesDir(null), "/data.txt"); try { in=new FileInputStream(file); //使用缓冲来读 byte[] buf=new byte[1024];//每1024字节读一次 StringBuilder builder=new StringBuilder(); while (in.read(buf)!=-1) { builder.append(new String(buf).trim()); } tvContent.setText(builder.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(in!=null){ in.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
Android的文件存储(写入和读取)
猜你喜欢
转载自blog.csdn.net/qq15577969/article/details/80771290
今日推荐
周排行