2011-07-13 43 views
5

Tôi kinda mới để lập trình android và java, có thể ai đó cho tôi biết làm thế nào để lưu các tập tin, tôi có các mã sau:Làm thế nào để lưu tập tin vào thẻ sd

InputStream is = new FileInputStream(location + "/zipSample.zip"); 
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is)); 

try { 
    ZipEntry ze; 
    while ((ze = zis.getNextEntry()) != null) { 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     byte[] buffer = new byte[1024]; 

     int count; 
     while ((count = zis.read(buffer)) != -1) { 
      baos.write(buffer, 0, count); 
     } 

     String filename = ze.getName(); 
     byte[] bytes = baos.toByteArray(); 

     // Do something with 'filename' and 'bytes' ... 
     // How do I save to sdcard? 
    } 
} finally { 
    zis.close(); 
} 

Cảm ơn rất nhiều sự giúp đỡ nào .

+0

thể trùng lặp của [Viết một tập tin vào sdcard] (http://stackoverflow.com/questions/2455102/writing-a-file-to-sdcard) – jww

Trả lời

8

javafile.

package com.javasamples; 

import java.io.*; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.*; 
import android.view.View.OnClickListener; 
import android.widget.*; 

public class FileDemo2 extends Activity { 
    // GUI controls 
    EditText txtData; 
    Button btnWriteSDFile; 
    Button btnReadSDFile; 
    Button btnClearScreen; 
    Button btnClose; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // bind GUI elements with local controls 
    txtData = (EditText) findViewById(R.id.txtData); 
    txtData.setHint("Enter some lines of data here..."); 

    btnWriteSDFile = (Button) findViewById(R.id.btnWriteSDFile); 
    btnWriteSDFile.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // write on SD card file data in the text box 
     try { 
      File myFile = new File("/sdcard/mysdfile.txt"); 
      myFile.createNewFile(); 
      FileOutputStream fOut = new FileOutputStream(myFile); 
      OutputStreamWriter myOutWriter = 
            new OutputStreamWriter(fOut); 
      myOutWriter.append(txtData.getText()); 
      myOutWriter.close(); 
      fOut.close(); 
      Toast.makeText(getBaseContext(), 
        "Done writing SD 'mysdfile.txt'", 
        Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
      Toast.makeText(getBaseContext(), e.getMessage(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    }// onClick 
    }); // btnWriteSDFile 

     btnReadSDFile = (Button) findViewById(R.id.btnReadSDFile); 
     btnReadSDFile.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // write on SD card file data in the text box 
     try { 
      File myFile = new File("/sdcard/mysdfile.txt"); 
      FileInputStream fIn = new FileInputStream(myFile); 
      BufferedReader myReader = new BufferedReader(
        new InputStreamReader(fIn)); 
      String aDataRow = ""; 
      String aBuffer = ""; 
      while ((aDataRow = myReader.readLine()) != null) { 
       aBuffer += aDataRow + "\n"; 
      } 
      txtData.setText(aBuffer); 
      myReader.close(); 
      Toast.makeText(getBaseContext(), 
        "Done reading SD 'mysdfile.txt'", 
        Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
      Toast.makeText(getBaseContext(), e.getMessage(), 
        Toast.LENGTH_SHORT).show(); 
     } 
     }// onClick 
     }); // btnReadSDFile 

     btnClearScreen = (Button) findViewById(R.id.btnClearScreen); 
     btnClearScreen.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // clear text box 
       txtData.setText(""); 
      } 
     }); // btnClearScreen 

     btnClose = (Button) findViewById(R.id.btnClose); 
     btnClose.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // clear text box 
       finish(); 
      } 
     }); // btnClose 

    }// onCreate 

}// AndSDcard 



xmlfile. 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
android:id="@+id/widget28" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#ff0000ff" 
android:orientation="vertical" 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 
<EditText 
android:id="@+id/txtData" 
android:layout_width="fill_parent" 
android:layout_height="180px" 
android:textSize="18sp" /> 

<Button 
android:id="@+id/btnWriteSDFile" 
android:layout_width="143px" 
android:layout_height="44px" 
android:text="1. Write SD File" /> 

<Button 
android:id="@+id/btnClearScreen" 
android:layout_width="141px" 
android:layout_height="42px" 
android:text="2. Clear Screen" /> 

<Button 
android:id="@+id/btnReadSDFile" 
android:layout_width="140px" 
android:layout_height="42px" 
android:text="3. Read SD File" /> 

<Button 
android:id="@+id/btnClose" 
android:layout_width="141px" 
android:layout_height="43px" 
android:text="4. Close" /> 

</LinearLayout> 
+1

Đó là một câu trả lời tuyệt vời, cảm ơn bạn! Tôi sẽ thêm một thư mục con để lưu: File storagePath = new File (Environment.getExternalStorageDirectory() + "/ MyFolder /"); storagePath.mkdirs(); Gửi tệp myFile = new File (storagePath, "mysdfile.txt"); – Lumis

Các vấn đề liên quan