File IOのAPIについていくつか読んで、次のブログ投稿を読んでください:http://techknock.blogspot.com/2008/05/file-hadling-in-android.html。彼のコードは、すべてが同じアクティビティにあるときにうまく動作します。しかし、私がやろうとしているのは、複数のリストを作成するために複数のデータベースを開くために使用できるIOInterfaceクラスを作成することです。AndroidファイルIOインターフェイスクラス
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();
}
}
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();
}
}
}
Eclipseはfos = openFileOutput(database, Content.MODE_PRIVATE);
を強調しています。コメントはopenFileOutput()
は存在しません。これに対する解決策はIOIntefaceクラスをアクティビティとして拡張することです。私はopenFileOutput()
がアクティビティクラスのメソッドだと思います。
私の質問は、私がやろうとしていることをどのように達成するのですか?
File fp = new File("database");
FileOutputStream fos = new FileOutputStream(fp);
などの標準Javaファイルioが動作しません。 FileNotFoundExceptionをキャッチします。しかしこれは実行可能でなければなりません。何か案は?
おかげで、
信じられないほど...私はちょうどポストに当たっていました。あなたはまったく同じ回答を投稿しました! +1。 –
あなたの投稿を中断しました。申し訳ありません。そして+1に感謝します。 – Michael
私はContextクラスをインポートしています:import android.content.Context。だから、なぜ私はIOInterfaceをアクティビティとして拡張しない限り、 "openFileInput(String)型はIOInterface型のために定義されていません"とEclipseが言っているのはなぜですか?私はFileInputStream(http://developer.android.com/reference/java/io/FileInputStream.html)のAPIを読んでいて、アクティビティである必要がある参照は見られませんでした。 – linsek