0

私のアプリケーションでは、必要なテキスト ファイルをユーザーの /sdcard/ よりもアプリの内部ストレージに保存したいので、ある時点でユーザーを悩ませる可能性のあるファイルが作成されないようにします。テキストファイルが外部ではなく内部に保存されるようにコードを変更する方法を誰かに教えてもらえますか。

        public void updatebutton(View v){
        startDownload();
    }

    private void startDownload() {
        String url = "http://nowactivity.webs.com/teststring.txt";
        Toast.makeText(this, "Updating", Toast.LENGTH_LONG);
        new DownloadFile().execute(url);
    }


class DownloadFile extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... aurl) {
        int count;

    try {

    URL url = new URL(aurl[0]);
    URLConnection conexion = url.openConnection();
    conexion.connect();

    int lenghtOfFile = conexion.getContentLength();
    Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);

    InputStream input = new BufferedInputStream(url.openStream());
    OutputStream output = new FileOutputStream("/sdcard/textfile.txt");

    byte data[] = new byte[1024];

    long total = 0;

        while ((count = input.read(data)) != -1) {
            total += count;
            publishProgress(""+(int)((total*100)/lenghtOfFile));
            output.write(data, 0, count);
        }

        output.flush();
        output.close();
        input.close();
    } catch (Exception e) {}
    return null;

    }
4

1 に答える 1

0

あなたが望むのは だと思いますContext.openFileOutput()。(Activity は Context を拡張するため、たとえば、Activity 内からこれを呼び出すことができます。)

ちなみに、次Environment.getExternalStorageDirectory()のようなものの代わりに使用する必要があります"/sdcard"

于 2013-07-03T18:53:34.687 に答える