私はassetsフォルダの下のファイルを読みたいと思いますし、私のファイルからMain_Activityクラスの戻り値としてテキストを取得したいと思います。ここに私のコードです。アクティビティクラスを拡張せずにjavaクラス内のassetsフォルダからファイルを読み取る方法は?
Main.java
これは、メインクラスのメソッドです。
ReadFile.java
このfileReaing()方法がReadFile.javaです。
public String fileReading() throws IOException {
StringBuilder sb = new StringBuilder();
AssetManager am = getAssets();
InputStream is = am.open("a.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
return sb.toString();
}
}
このコードを実行した後、次のエラーが見つかりました。
Process: com.csh.readfile, PID: 4379
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.csh.readfile/com.csh.readfile.Main}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.content.
Context.getAssets()' on a null object reference
このエラーを解決するのを手伝ってください。私はアンドロイドの初心者であり、前もってすべてに感謝しています。
1)にコンテキストを渡します
をコンテキストを渡します? –
@SnehalGongle、いいえ、私は別のjava calssのファイルを読んでみたいと思いますし、戻り値としてファイルからテキストを取得したいと思います。私はどうしたらいいですか? –
あなたは@omar restで答えを参照することができます。コンテキストの代わりにgetApplicationContext()を使うことをお勧めします。 –