詳しい使用内部ストレージ

非常にお勧めの記事:ようこそお気に入り
のAndroidドライシェア

5分、毎日10時、あなたと生涯学習を読んで、ここでのAndroidのプログラマです

この資料に記載されているAndroidこの記事を読んで知識の開発の一部を、次のことを刈り取ります。

  1. 内部ストレージのパスを保存します
  2. 内部記憶装置(ストレージ、読み出し)方法を使用して
  3. デモ内部ストレージ
  4. 内部ストレージの他の方法

Androidあなたが内部ストレージに直接ファイルを保存することができ、内部メモリに保存されたファイルは、時にプライベートファイルアプリケーションは、他のアプリケーションがアクセスすることはできませんされappたファイルが削除されるときにアンロードされています。内部ストレージは、多くの場合、ファイルとして保存されます。

1.内部ストレージ・パスを保存

内部ストレージのパスを保存:
/data/data/com.**包名/files/文件名

方法を使用して2内部記憶装置(ストレージ、読み出し)

1.ファイルを保存します

以下のようにファイルを保存する一般的な方法:

  • 1.操作コールのファイル名とモードを使用してくださいopenFileOutput()
    これが返されますFileOutputStream
  • 2. write()ファイルに書き込ま。
  • 3. close()閉じるストリーミング。
    // 1.保存文件方法
    private void SaveFile() {
        String filename = etname.getText().toString().trim();
        String filecontent = etcontent.getText().toString().trim();
        if (TextUtils.isEmpty(filename) || TextUtils.isEmpty(filecontent)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        // 打开一个用来读写的文件,该文件与当前上下文所在的包相关,调用该方法不需要添加任何全选,
        // 保存在手机内部存储中
        try {
            // 打开输出流,并创建文件
            FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE);
            // 输入的内容保存到文件中
            fos.write(filecontent.getBytes());
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG)
                .show();
        etname.setText("");
        etcontent.setText("");

    }

2.読むファイル内容方法

  1. コールopenFileInput()と読み取られるファイル名を渡します。これが返されますFileInputStream
  2. 使用して、read()ファイルのバイトを読み込みます。
  3. その後、close()ストリームを閉じます。
    // 2.打开文件方法
    private void OpenFile() {
        String filename = etname.getText().toString().trim();
        if (TextUtils.isEmpty(filename)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        try {
            // 打开文件得到一个只读的输入流,
            FileInputStream fis = openFileInput(filename);
            // 将文件内容存放的byte数组中
            byte[] buffer = new byte[fis.available()];
            // 读取数组中的内容
            fis.read(buffer);
            fis.close();
            // 将数组内容存放到字符串中,并显示出来
            etcontent.setText(new String(buffer));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

3.ファイルのメソッドを削除します。

ファイルを削除するには、ファイル名を削除することができます deleteFile(filename);

    // 3.删除文件方法
    private void DeleteFile() {
        String filename = etname.getText().toString().trim();
        if (TextUtils.isEmpty(filename)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        // 删除上下文中指定名称的文件,
        boolean deletefile = deleteFile(filename);
        if (deletefile) {
            Toast.makeText(getApplicationContext(), "删除成功", Toast.LENGTH_LONG)
                    .show();

        }
    }

ケース3内部ストレージ

  • 結果を達成するため、次の通りである:
    機能を削除して、読んで、ファイルを保存達成するために

内部ストレージの使用状況

  • 次のようにコードは次のとおりです。
public class FileInternalStorageMethods extends Activity implements
        OnClickListener {
    /*
     * 内部存储的方法FileOutputStream(filename, MODE_PRIVATE);
     * FileInputStream(filename); deleteFile(filename); 文件保存位置:
     * /data/data/包名/files/文件名 内部存储的特点: 内部存储里的东西会随着app的卸载而清掉
     * 
     * *
     */

    private EditText etname, etcontent;
    private Button savebtn, openbtn, deletebtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_internal_methods);
        InitView();
    }

    private void InitView() {
        etname = (EditText) findViewById(R.id.editfilename);
        etcontent = (EditText) findViewById(R.id.edit_filecontext);
        savebtn = (Button) findViewById(R.id.savefile);
        openbtn = (Button) findViewById(R.id.openfile);
        deletebtn = (Button) findViewById(R.id.deletefile);

        savebtn.setOnClickListener(this);
        openbtn.setOnClickListener(this);
        deletebtn.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.savefile:

            SaveFile();
            break;
        case R.id.openfile:

            OpenFile();
            break;
        case R.id.deletefile:

            DeleteFile();
            break;
        default:
            break;
        }

    }

    // 1.保存文件方法
    private void SaveFile() {
        String filename = etname.getText().toString().trim();
        String filecontent = etcontent.getText().toString().trim();
        if (TextUtils.isEmpty(filename) || TextUtils.isEmpty(filecontent)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        // 打开一个用来读写的文件,该文件与当前上下文所在的包相关,调用该方法不需要添加任何全选,
        // 保存在手机内部存储中
        try {
            // 打开输出流,并创建文件
            FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE);
            // 输入的内容保存到文件中
            fos.write(filecontent.getBytes());
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG)
                .show();
        etname.setText("");
        etcontent.setText("");

    }

    // 2.打开文件方法
    private void OpenFile() {
        String filename = etname.getText().toString().trim();
        if (TextUtils.isEmpty(filename)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        try {
            // 打开文件得到一个只读的输入流,
            FileInputStream fis = openFileInput(filename);
            // 将文件内容存放的byte数组中
            byte[] buffer = new byte[fis.available()];
            // 读取数组中的内容
            fis.read(buffer);
            fis.close();
            // 将数组内容存放到字符串中,并显示出来
            etcontent.setText(new String(buffer));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    // 3.删除文件方法
    private void DeleteFile() {
        String filename = etname.getText().toString().trim();
        if (TextUtils.isEmpty(filename)) {
            Toast.makeText(getApplicationContext(), "文件名不能为空",
                    Toast.LENGTH_LONG).show();
            return;
        }
        // 删除上下文中指定名称的文件,
        boolean deletefile = deleteFile(filename);
        if (deletefile) {
            Toast.makeText(getApplicationContext(), "删除成功", Toast.LENGTH_LONG)
                    .show();

        }
    }

}
  • 次のようなレイアウトを実装します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editfilename"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@android:drawable/edit_text"
            android:hint="请输入文件名"
            android:padding="5dp"
            android:textSize="20sp" />

        <Button
            android:id="@+id/savefile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="5dp"
            android:padding="5dp"
            android:text="保存"
            android:textSize="25sp" />

        <Button
            android:id="@+id/openfile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="5dp"
            android:padding="5dp"
            android:text="打开"
            android:textSize="25sp" />
    </LinearLayout>

    <Button
        android:id="@+id/deletefile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="5dp"
        android:text="删除文件"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/edit_filecontext"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@android:drawable/edit_text"
        android:gravity="left"
        android:hint="请输入文件内容"
        android:padding="5dp"
        android:textSize="20sp" />

</LinearLayout>

内部ストレージ4.他の方法

1.ファイルシステムはファイル内に格納されているディレクトリの絶対パスを取得します。

 getFilesDir()

2.内部ストレージ空間内の作成(または既存のオープン)のディレクトリを。

 getDir()

3.ファイルの現在のセットを保存するようにアプリケーションを返します。

 fileList()

間違った場所、あなたの提案や修正を歓迎している場合これまでのところ、本明細書に、これは、終了しました。同時に、あなたの注意を楽しみにして、お読みいただきありがとうございました、ありがとうございました!

マイクロチャネル国民の関心番号:プログラマーアンドロイド、福祉を受けます

おすすめ

転載: www.cnblogs.com/wangjie1990/p/11310904.html