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();
}
}
}
File文件存储
最新推荐文章于 2024-04-29 08:33:47 发布