0

重複の可能性:
Androidのアセットフォルダーまたはrawフォルダーにファイルを書き込む方法は?

Androidのアセット/サブフォルダーに画像を保存するにはどうすればよいですか?アセットフォルダのサイズに上限はありますか?実際、私はWebから大量の画像を取得し、アセットのサブフォルダーにあるすべての画像をダウンロードしようとしていますか?それは可能ですか、そしてどのように?実際に私のコードは次のとおりです、それはsdcardに画像を保存します:-

String filepath=null;
      try {
       //set the download URL, a url that points to a file on the internet
       //this is the file to be downloaded
       URL url = new URL(Url);
       //create the new connection
       HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

       //set up some things on the connection
       urlConnection.setRequestMethod("GET");
       urlConnection.setDoOutput(true); 
        //and connect!
       urlConnection.connect();
       //set the path where we want to save the file
       //in this case, going to save it on the root directory of the
       //sd card.
     File SDCardRoot = Environment.getExternalStorageDirectory();
       //create a new file, specifying the path, and the filename
       //which we want to save the file as.

       String filename= "downloadedFile.png";   // you can download to any type of file ex:.jpeg (image) ,.txt(text file),.mp3 (audio file)
       Log.i("Local filename:",""+filename);
       file = new File(SDCardRoot,filename);
       if(file.createNewFile())
       {
        file.createNewFile();
       }

       //this will be used to write the downloaded data into the file we created
       FileOutputStream fileOutput = new FileOutputStream(file);

       //this will be used in reading the data from the internet
       InputStream inputStream = urlConnection.getInputStream();

       //this is the total size of the file
       int totalSize = urlConnection.getContentLength();
       //variable to store total downloaded bytes
       int downloadedSize = 0;

       //create a buffer...
       byte[] buffer = new byte[1024];
       int bufferLength = 0; //used to store a temporary size of the buffer

       //now, read through the input buffer and write the contents to the file
       while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
        //add the data in the buffer to the file in the file output stream (the file on the sd card
        fileOutput.write(buffer, 0, bufferLength);
        //add up the size so we know how much is downloaded
        downloadedSize += bufferLength;
        //this is where you would do something to report the prgress, like this maybe
        Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;

       }
       //close the output stream when done
       fileOutput.close();
       if(downloadedSize==totalSize)   filepath=file.getPath();

      //catch some possible errors...
      } catch (MalformedURLException e) {
       e.printStackTrace();
      } catch (IOException e) {
       filepath=null;
       e.printStackTrace();
      }
      Log.i("filepath:"," "+filepath) ;

そのための解決策を教えてください。

4

1 に答える 1

0

問題のあるアセットフォルダに画像を保存できませんでした

読み取り専用です

また、通常、アセットフォルダーの最大サイズはファイルごとに1MBです。

あなたはsdcardに画像を保存することができます。

于 2012-07-12T10:18:14.657 に答える