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>

相關文章
相關標籤/搜索