File文件存储


package com.example.tyxiong.myapplication;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;

/*
*
* Android的数据存储.前面用到PreferencesActivity存储参数设置...shared_文件.
*    少数据可用SharedPreferences File来存储;数据量大用SQL,当然手机不是服务器.
*
* SharedPreferences File SD卡 SQLiteDatabase
*
* SharedPreferences:文件存储位置在data/data/<包>.share_.xml  key-value对
*  1 SharePreferences,负责读取其内数据3方法;
*  2 Editor,SharedPreferences内部接口,负责向其内写数据,4方法(putxxx()/clear()/remove()/commit())
*
*  使用步骤:4步
*   1SharedPreferences对象,Context方法getSharedPreferences(name,mode) 获取指定文件名 对象,3模式(private/../..)
*   2Editor对象, SharedPreferences对象 edit()方法.
*   3Editor对象 写数据.
*   4SharedPreferences读.
*

*File存储. java提供了完整的IO流体系.各种流.字节流/字符流/节点流/处理流/转换流/...
*
*         Context有2方法 openFileOutput()4模式(private/append/....)/openFileInput()---文件流.
*         Context有4方法访问该程序文件夹. 获取根下指定子目录/根下所有文件/删除根下指定文件/根绝对路径
*         使用步骤4:
*           1 Context的openFileOutput(指定模式4种)方法获得指定文件名对应文件的outStream(
*           2 可包装成打印流)写入数据. 写完关闭流.
*           3 Context的openFileInput()方法获得文件的输入流,
*           4 可包装成处理流(字符处理流)读行),读出数据,关闭流(顶端流.)
*
*
* 以下为File存储取过程.
* */
public class MainActivity extends Activity {

    EditText text;
    private final String MY_FILE = "myFile1.txt";
    PrintStream print;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (EditText) findViewById(R.id.textView);


    }


    public void write(View view) throws FileNotFoundException {

        FileOutputStream outStream = openFileOutput(MY_FILE, MODE_APPEND);
        print = new PrintStream(outStream);
        String str = text.getText().toString();
       text.setText("");
        print.print(str );
        print.close();
    }

    public void read(View view) {


        try {
            StringBuilder sb = new StringBuilder();
            // preference.getAll();
            FileInputStream inputStream = openFileInput(MY_FILE);
            BufferedReader buffer = new BufferedReader(new InputStreamReader(inputStream));
            String temp;
            while ((temp = buffer.readLine()) != null) {
                sb.append(temp);
            }
            inputStream.close();
            Toast.makeText(MainActivity.this, sb, Toast.LENGTH_SHORT).show();
        }
        catch (NullPointerException ex)
        {
            ex.printStackTrace();

        }
        catch (IOException e){
            e.printStackTrace();
        }


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋葵好吃吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值