版面要加入一個editView, 一個textView 及 兩個 Button (editView1, textView2, btnWrite, btnRead)
輸入字於 editView1, 按下 btnWrite 便會寫入檔案 output 及顯示檔案路徑 (toast), 按下 btnRead 便會讀出檔案及顯示於 textView2
注意: 讀取中文字, 中文字每個要 2 個 Byte.
MainActivity.java
import android.content.Context; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText txtWrite = (EditText) findViewById(R.id.editText1); final TextView txtRead = (TextView) findViewById(R.id.textView2); Button btnTxtRead = (Button) findViewById(R.id.btnRead); Button btnTxtWrite = (Button) findViewById(R.id.btnWrite); btnTxtWrite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { try { FileOutputStream fos = openFileOutput("output", Context.MODE_PRIVATE); fos.write(txtWrite.getText().toString().getBytes()); fos.close(); File file = new File(getFilesDir() + "/" + fos); Toast.makeText(getApplicationContext(), file.getAbsolutePath(), Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } }); btnTxtRead.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { FileInputStream fos = null; BufferedInputStream buffered = null; try { fos = openFileInput("output"); buffered = new BufferedInputStream(fos); byte[] buffbyte = new byte[200]; txtRead.setText(""); do { int flag = buffered.read(buffbyte); if (flag == -1) { break; } else { txtRead.append(new String(buffbyte), 0, flag); } }while (true); buffered.close(); } catch (Exception e) { e.printStackTrace(); } } }); } }
沒有留言:
張貼留言