zoukankan      html  css  js  c++  java
  • 文件存储

    布局:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout
     3     xmlns:android="http://schemas.android.com/apk/res/android"
     4     xmlns:app="http://schemas.android.com/apk/res-auto"
     5     xmlns:tools="http://schemas.android.com/tools"
     6     android:layout_width="match_parent"
     7     android:layout_height="match_parent"
     8     android:orientation="vertical"
     9     tools:context="net.bwie.localdata.activity.FileActivity">
    10 
    11     <Button
    12         android:id="@+id/read_file_btn"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:text="读取文件"/>
    16 
    17     <Button
    18         android:id="@+id/write_file_btn"
    19         android:layout_width="wrap_content"
    20         android:layout_height="wrap_content"
    21         android:text="写入文件"/>
    22 
    23     <TextView
    24         android:id="@+id/result_tv"
    25         android:text="结果"
    26         android:layout_width="wrap_content"
    27         android:layout_height="wrap_content"/>
    28 
    29 </LinearLayout>

    Activity:

      1 public class FileActivity extends AppCompatActivity implements View.OnClickListener {
      2 
      3     protected Button mReadFileBtn;
      4     protected Button mWriteFileBtn;
      5     protected TextView mResultTv;
      6 
      7     public static void startActivity(Context context) {
      8         context.startActivity(new Intent(context, FileActivity.class));
      9     }
     10 
     11     @Override
     12     protected void onCreate(Bundle savedInstanceState) {
     13         super.onCreate(savedInstanceState);
     14         super.setContentView(R.layout.activity_file);
     15         initView();
     16     }
     17 
     18     @Override
     19     public void onClick(View view) {
     20         if (view.getId() == R.id.read_file_btn) {
     21             String result = readFile();
     22             mResultTv.setText(result);
     23 
     24         } else if (view.getId() == R.id.write_file_btn) {
     25             writeFile();
     26         }
     27     }
     28 
     29     // 读取文件
     30     private String readFile() {
     31         String filePath = Environment.getExternalStorageDirectory().getPath() + "/abc/";
     32         String fileName = "xyz.txt";
     33 
     34         File file = new File(filePath, fileName);
     35 
     36         BufferedReader br = null;
     37         try {
     38             br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
     39 
     40             String result = "";
     41             String line = "";
     42 
     43             while ((line = br.readLine()) != null) {
     44                 result += line;
     45             }
     46             return result;
     47 
     48 
     49         } catch (Exception e) {
     50             e.printStackTrace();
     51         } finally {
     52             if (br != null) {
     53                 try {
     54                     br.close();
     55                 } catch (IOException e) {
     56                     e.printStackTrace();
     57                 }
     58             }
     59         }
     60         return null;
     61     }
     62 
     63     // 写入文件
     64     private void writeFile() {
     65 
     66         // 外部存储私有路径:Android文件夹
     67 //        String privatePath = getExternalFilesDir(null).getPath();// 私有路径不分类为null
     68 //        String filePath = privatePath + "/abc/";
     69 
     70         // 外部存储公共路径:DICM,DOWNLOAD,MUSIC等系统提供的文件夹
     71 //        String publicPath = Environment
     72 //                .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
     73 //                .getPath();
     74 //        String filePath = publicPath + "/abc/";
     75 
     76         // 自定义文件路径
     77         String rootPath = Environment.getExternalStorageDirectory().getPath();// 外部存储路径(根目录)
     78         String filePath = rootPath + "/abc/";
     79 
     80         String fileName = "xyz.txt";
     81 
     82         File file = new File(filePath, fileName);
     83 
     84         FileOutputStream fos = null;
     85         try {
     86             fos = new FileOutputStream(file);
     87             fos.write("asdasdas".getBytes());
     88             Toast.makeText(this, "成功", Toast.LENGTH_SHORT).show();
     89         } catch (Exception e) {
     90             e.printStackTrace();
     91             Log.d("1507", "error: " + e.getMessage());
     92         } finally {
     93             if (fos != null) {
     94                 try {
     95                     fos.close();
     96                 } catch (IOException e) {
     97                     e.printStackTrace();
     98                 }
     99             }
    100         }
    101 
    102     }
    103 
    104     private void initView() {
    105         mReadFileBtn = (Button) findViewById(R.id.read_file_btn);
    106         mReadFileBtn.setOnClickListener(FileActivity.this);
    107         mWriteFileBtn = (Button) findViewById(R.id.write_file_btn);
    108         mWriteFileBtn.setOnClickListener(FileActivity.this);
    109         mResultTv = (TextView) findViewById(R.id.result_tv);
    110     }
    111 }

    权限:

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

  • 相关阅读:
    Office Shared-Addin : Favorite的下载、安装和使用(2020.2.22)
    VBA编程常用词汇英汉对照表
    Excel-DNA自定义函数的参数智能提示功能:ExcelDna.IntelliSense1.1.0.rar
    VSTO开发中级教程 配套资源下载
    TreeviewEditor.rar
    FaceIDViewer.rar
    imageMso7345.rar
    VisualStudioAddin2016Setup.rar
    VBE2014_Setup_20160709.rar
    documen.write 和 innerHTML 的区别?
  • 原文地址:https://www.cnblogs.com/SongYongQian/p/7883239.html
Copyright © 2011-2022 走看看