Android通过ContentProvider传输文件

package com.h3c.test;      import java.io.File;   import java.io.FileInputStream;   import java.io.FileNotFoundException;   import java.io.FileOutputStream;   import java.io.IOException;   import java.io.InputStream;   import java.io.OutputStream;   import java.lang.reflect.InvocationTargetException;   import java.lang.reflect.Method;      import android.app.Activity;   import android.content.Context;   import android.content.pm.PackageManager.NameNotFoundException;   import android.content.res.AssetFileDescriptor;   import android.net.Uri;   import android.os.Bundle;   import android.util.Log;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;      public class NotepadTestActivity extends Activity {       @Override       protected void onCreate(Bundle savedInstanceState) {           // TODO Auto-generated method stub            super.onCreate(savedInstanceState);           setContentView(R.layout.notepad);              Button button = (Button) findViewById(R.id.notepad);           button.setOnClickListener(new OnClickListener() {                  @Override               public void onClick(View v) {                   try {                       // 直接读文件                        // InputStream is = getContentResolver().openInputStream(                        // Uri.parse("file:/mnt/sdcard/h3c.txt"));                        //                        // File bkFile = new File("/mnt/sdcard/h3c2.txt");                        // if (!bkFile.exists()) {                        // bkFile.createNewFile();                        // }                        //                                            // FileOutputStream out = new FileOutputStream(bkFile);                        // byte[] b = new byte[1024 * 5]; // 5KB                        // int len;                        // while ((len = is.read(b)) != -1) {                        // out.write(b, 0, len);                        // }                        // out.flush();                        // is.close();                        // out.close();                           // 直接写文件                        // OutputStream out = getContentResolver().openOutputStream(                        // Uri.parse("file:/mnt/sdcard/h3c.txt"));                        // FileInputStream in = new FileInputStream(new File(                        // "/mnt/sdcard/h3c3.txt"));                        //                        // byte[] b = new byte[1024 * 5]; // 5KB                        // int len;                        // while ((len = in.read(b)) != -1) {                        // out.write(b, 0, len);                        // }                        // out.flush();                        //                                            // in.close();                        // out.close();                           // 内容流写                        // AssetFileDescriptor afd = getContentResolver()                        // .openAssetFileDescriptor(                        // Uri.parse("content://com.h3c.test/h3c.txt"),                        // "wr");                        // InputStream in = afd.createInputStream();                        // File bkFile = new File("/mnt/sdcard/h3c2.txt");                        // if (!bkFile.exists()) {                        // bkFile.createNewFile();                        // }                        //                        // FileOutputStream out = new FileOutputStream(bkFile);                        // byte[] b = new byte[1024 * 5]; // 5KB                        // int len;                        // while ((len = in.read(b)) != -1) {                        // out.write(b, 0, len);                        // }                        // out.flush();                        // in.close();                        // out.close();                           // 内容流读                        AssetFileDescriptor afd = getContentResolver()                               .openAssetFileDescriptor(                                       Uri.parse("content://com.h3c.test/h3c.txt"),                                       "wr");                       OutputStream out = afd.createOutputStream();                       FileInputStream in = new FileInputStream(new File(                               "/mnt/sdcard/h3c2.txt"));                          byte[] b = new byte[1024 * 5]; // 5KB                        int len;                       while ((len = in.read(b)) != -1) {                           out.write(b, 0, len);                       }                       out.flush();                          in.close();                       out.close();                   } catch (FileNotFoundException e) {                       e.printStackTrace();                   } catch (IOException e) {                       e.printStackTrace();                   }               }           });          }   }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/866813bdad71cc76cc99d7e3bc0f3f2a.html