1

PC に接続したときにデバイスから簡単に取り出せるように、アプリケーションの実行中にデータをファイルに保存しようとしています。

現在、ファイルを作成して書き込むことはできますが、コンピューターでファイルを表示できません。

経験が限られている人に DDMS を使用するように依頼するので、DDMS を使用したくないことに注意してください。

デバイスのファイルマネージャーで確認できるので、ファイルを書き込んでいることがわかります。ファイルをデバイスの別のディレクトリにコピーすると、コンピューターで表示できますが、これは私の状況では有効な回避策ではありません。

ここに私が持っているものがあります:

String fileName = "test";
String stuffToWrite = "testString";
try
{

  File sdCard = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
  File dir = new File (sdCard.getAbsolutePath());
  dir.mkdirs();
  File file = new File(dir, fileName + ".csv");

  file.setReadable(true,false);


  FileOutputStream fOut = new FileOutputStream(file);

  OutputStreamWriter osw = new OutputStreamWriter(fOut); 

  // Write the string to the file
  osw.write(stuffToWrite);

  /* ensure that everything is
   * really written out and close */
  osw.flush();
  osw.close();
}

お時間をいただきありがとうございます。

4

2 に答える 2

0

file.createNewFile(); を追加してみてください。

File file = new File(dir, fileName + ".csv");
file.createNewFile();
于 2012-11-14T22:03:31.707 に答える
0

次の例では、Android 外部ストレージのルート ディレクトリに「hello.txt」というファイルを作成します。

package external.com;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;

public class WriteExStorage extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        String ex_storage_directory;

        ex_storage_directory = Environment.getExternalStorageDirectory().toString();

        File f = new File(ex_storage_directory, "hello.txt");

        try
        {
          PrintWriter p = new PrintWriter(new FileWriter(f));

          p.println("Hello External Storage!");
          p.close();
        }
        catch(java.io.IOException e)
        {
          return;
        }
    }

外部ストレージ デバイスが使用できない場合、getExternalStorageDirectory() の呼び出しは失敗します。詳細については、 getExternalStorageDirectory()を参照してください。

于 2012-12-04T21:04:06.137 に答える