android:内部存储空间 IO 操作openFileInput()、output(13)

public class MainActivity extends Activity {
	private EditText edittext;
	private EditText show_text;
	private ArrayAdapter<String> adapter;
	private AlertDialog.Builder builder;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.edittext = (EditText) this.findViewById(R.id.edittext);
		this.show_text = (EditText) this.findViewById(R.id.show_text);
		initDialog(); // 创建adapter对话框
	}

	public void initDialog() {
		// 创建adapter对话框,并初始化数据
		builder = new AlertDialog.Builder(MainActivity.this);
		builder.setTitle("请选择文件列表");
		builder.setIcon(R.drawable.ic_launcher);
		adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1);// 空的适配器
		builder.setAdapter(adapter, new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				String filename = adapter.getItem(which);
				edittext.setText(filename);
				read(null);

			}
		}).create();// 只创建不显示,在下面点中菜单键的时候再显示
	}

	// option菜单
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.menu, menu);
		return super.onCreateOptionsMenu(menu);
	}

	// fileList():方法
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if (item.getItemId() == R.id.select) {
			adapter.clear();
			// fileList()是高版本,要改为11版本
			adapter.addAll(fileList());// 获取当前应用的内部存储空间的文件列表
		}
		builder.show();
		return super.onOptionsItemSelected(item);
	}

	// openFileOutput();方法
	public void save(View view) {
		String fileName = edittext.getText().toString().trim();
		String fileContext = show_text.getText().toString().trim();
		try {
			OutputStream output = openFileOutput(fileName, MODE_PRIVATE);
			output.write(fileContext.getBytes());

			Toast.makeText(this, "保存成功!", Toast.LENGTH_SHORT).show();
			output.close();
			show_text.setText("");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// openFileInput()方法
	public void read(View view) {
		// 读取的是当前应用的内部存储空间内存,不用权限
		String filename = edittext.getText().toString().trim();
		try {
			InputStream is = openFileInput(filename);
			byte[] buffer = new byte[is.available()];// 文件的粗略长度,要少用,不准确
			is.read(buffer);
			show_text.setText(new String(buffer));
			is.close();

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
//主布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/bnt_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/edittext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2" />

        <Button
            android:id="@+id/save"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="save"
            android:text="保存" />

        <Button
            android:id="@+id/read"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="read"
            android:text="读取" />
    </LinearLayout>

    <EditText
        android:id="@+id/show_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#88000000"
        android:gravity="left|top" />

</LinearLayout>

//选项菜单文件menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/select"
        android:title="选择文件列表"/>

</menu>

android:内部存储空间 IO 操作openFileInput()、output(13)_第1张图片

你可能感兴趣的:(android:内部存储空间 IO 操作openFileInput()、output(13))