iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0

這次我們要教大家如何來創建檔案並存在手機的觸存空間之中。為了讓大家知道流程,就先示範創建一個文檔(txt)的過程。

XML

開啟activity_main.xml,存成文字檔,所以創了兩個EditText,一個用來輸入檔案名稱,一個用來輸入檔案內容。最後在創一個Button來觸發存檔的事件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <EditText
        android:id="@+id/fileName"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:hint="文檔名稱" />

    <EditText
        android:id="@+id/fileContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/fileName"
        android:hint="文檔內容" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="創建文檔"/>
</RelativeLayout>

JAVA程式碼

設計完UI後來的JAVA設計的部分。在綁定完元件ID後給Button寫個監聽和觸發存檔的事件。下面解析一下程式碼的片段。
path = this.getExternalFilesDir(null).getAbsolutePath(); 用於設定存檔的位置,此種設定方式會存在Android/data/(專案名稱)/files中
File file = new File(path + "/" + fileName.getText().toString() + ".txt");用於創建新檔案,路徑就是剛剛的path加上EditText中輸入的檔案名稱
FileOutputStream writeContent = new FileOutputStream(file); 設定檔案輸出流
writeContent.write(fileName.getText().toString().getBytes()); 將EditText中輸入的檔案內容寫進去
最後在利用Toast來顯示檔案是否創建成功

public class MainActivity extends AppCompatActivity {

    String path;
    Button button;
    EditText fileName,fileContent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        fileName = findViewById(R.id.fileName);
        fileContent = findViewById(R.id.fileContent);
        path = this.getExternalFilesDir(null).getAbsolutePath();

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                File file = new File(path + "/" + fileName.getText().toString() + ".txt");
                try {
                    FileOutputStream writeContent = new FileOutputStream(file);
                    writeContent.write(fileName.getText().toString().getBytes());
                    writeContent.close();
                    Toast.makeText(MainActivity.this,"創建成功", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    Toast.makeText(MainActivity.this,"創建失敗", Toast.LENGTH_SHORT).show();
                    Log.v("ERROR","" + e);
                }
            }
        });
    }
}

成果

圖片


上一篇
[Day22] ScrollView和SeekBar搭配應用
下一篇
[Day24] 影片播放
系列文
Android 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言