1

アプリのおかげで入力したファイルにアクセスしようとしています。携帯電話のメモリに保存していますが、アプリの内部メモリには保存していません。

私の問題は、PC で開いたときにファイルが存在しないことです (電話が USB 経由で接続されている場合)。しかし、スマートフォンから直接開くと、空ではなく利用可能です。

このファイルを自分のコンピュータで利用できるようにする必要があります。

私のマニフェストで:

READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE

私はこの方法を試しました:

FileWriter outFile = new FileWriter(Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
PrintWriter out = new PrintWriter(outFile);
out.append("text");
out.flush();
out.close();

また、この方法:

 File file = Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
 FileOutputStream outputStream = context.openFileOutput(file, Context.MODE_WORLD_READABLE);
 PrintStream printStream = new PrintStream(outputStream);
 printStream.println(text);
 printStream.close();

別の方法..

File file = Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
FileWriter outFile = new FileWriter(file);
BufferedWriter buf = new BufferedWriter(outFile);
buf.write("hey");
buf.close();
outFile.close();

これらのソリューションのいくつかは機能しますが、私の電話でのみ機能するため、誰でも読み取れるわけではなく、機能しないものもあります...

OutPutStreamWriterFileWriterBufferedWriterFileOutputStreamPrintWriter、 ...の違いは何ですか? どちらを選択する必要がありますか?

自分のコンピューターから直接アクセスできるようにするにはどうすれば公開ファイルを作成できますか?

ご協力ありがとうございました!

4

1 に答える 1

0

これを試して:

String toWrite = "save me to disk";
File dir = new File(Environment.getExternalStorageDirectory(), INSTALLATION_DIRECTORY); 
if (!dir.exists()) {
    dir.mkdirs();
}
File file = new File(dir, INSTALLATION_FILE);
FileOutputStream out = new FileOutputStream(file );
out.write(toWrite.getBytes());
out.close();
于 2013-09-02T15:53:38.527 に答える