lin*_*sek 1 java file-io android
我对文件IO的API做了一些阅读,并阅读了以下博客文章:http://techknock.blogspot.com/2008/05/file-hadling-in-android.html.当一切都在同一个活动中时,他的代码工作正常.但我要做的是创建一个IOInterface类,我可以用它来打开多个数据库来填充多个列表.
ListA.java
public class ListA
{
public List<ClassA> list;
private final String DBA = "dbA";
private IOInterface database;
public List()
{
list = new ArrayList<ClassA>();
database = new IOInterface();
}
...
public void initListA() throws IOException
{
database.openForWriting(DBA);
String myStr = new String("content");
database.dos.writeBytes(myStr);
database.dos.flush();
database.dos.close();
}
}
Run Code Online (Sandbox Code Playgroud)
IOInterface.java
public class IOInterface
{
public DataOutputStream dos;
private FileOutputStream fos;
public void openForWriting(String database)
{
try {
fos = openFileOutput(database, Content.MODE_PRIVATE);
dos = new DataOutputStream(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse强调fos = openFileOutput(database, Content.MODE_PRIVATE);.随着评论openFileOutput()不存在.解决方法是将IOInteface类扩展为Activity.我想那时openFileOutput()是一个活动类的方法.
所以我的问题是如何完成我想做的事情?标准Java文件io,例如:
File fp = new File("database");
FileOutputStream fos = new FileOutputStream(fp);
Run Code Online (Sandbox Code Playgroud)
不起作用.它捕获FileNotFoundException.但这必须是可行的.有任何想法吗?
谢谢,
方法openFileOutput()包含在Context类中,因此您可以将此类的实例传递给打开文件的方法.你应该总是使用方法Context何时处理文件的方法.
您可以阅读开发指南中有关使用内部和外部存储的信息.