我发现这个代码似乎是我需要的,因为它会将字节文件复制到SD卡中。
但我该如何使用它?说我有一个名为mytext.txt的文本文件,我将它放在我的应用程序中?我该如何参考呢?我正在使用Eclipse
public static final void copyfile(String srFile, String dtFile){
try{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied to " + f2.getAbsolutePath());
} catch(FileNotFoundException ex){
System.out.println(ex.getMessage() + " in the specified directory.");
System.exit(0);
} catch(IOException e){
System.out.println(e.getMessage());
}
}
答案 0 :(得分:0)
我会创建一个FileUtilities类或者其他类。你看过这里的例子了吗?
http://download.oracle.com/javase/tutorial/essential/io/copy.html
http://www.java2s.com/Code/Java/File-Input-Output/FileCopyinJava.htm
您不想盲目执行此代码。它看起来像是一个java控制台应用程序。系统Printlines不会出现用户在Android应用程序中看到的任何地方。我不知道System.exit()在Android应用程序中做了什么,但你也不想这样做。根据您的应用程序,您可能希望添加复制失败的Toast通知。你想至少记录下来。
根据您要复制的文件大小,您可能希望在后台线程中执行此操作,以免堵塞UI。
答案 1 :(得分:0)
如果您的代码很小,您可以将它添加为您自己的Activity的另一种方法,或者您可以创建一个实用程序类,假设
class MyUtilities {
public static final void copyfile(String srFile, String dtFile) throws IOException, FileNotFoundException{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
Log.d("MyUtilities", "File copied to " + f2.getAbsolutePath());
}
}
您将使用它:
TextEdit text1 = findViewById(R.id.text1);
TextEdit text2 = findViewById(R.id.text2);
String file1 = text1.getText();
String file2 = text2.getText();
if (text1 != null and text2 != null) {
try{
MyUtilities.copyfile (file1, file2);
} catch(FileNotFoundException ex){
Log.e("MyUtilities", ex.getMessage() + " in the specified directory.");
} catch(IOException e){
Log.e("MyUtilities", e.getMessage());
}
}
我添加了日志而不是System.out,并更改了Exception机制以更好地匹配Android需求。
答案 2 :(得分:0)
嗯,乍一看似乎是一个声音方法,除了你想要用一个Android Log方法替换System.out打印语句......但除此之外你可以复制/粘贴它并包含课堂上的方法。
要使用它,但是......您应该查看外部存储文档。 http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
您将需要使用Android方法来获取正确的SD卡目录等...
答案 3 :(得分:0)
我找到了一种将文件复制到SD卡的方法,但是谢谢大家的回复我真的很感谢你花时间来做这个!
我的解决方案详述如下。
I need to be able to store sound files for my application on sdcard