0

Androidで.iniファイルを読み込もうとしましたが、機能しません。これまで、次の2つの方法を試しました。

res / rawフォルダからファイルをロードします:

int fileId = context.getResources().getIdentifier(fileName, "raw", context.getPackageName());
bufferedReader = new BufferedReader(new InputStreamReader(Resources.getSystem().openRawResource(fileId)));

// I tried this too:
//context.getResources().openRawResource(fileId)));

私は最初、コンテキストが問題である可能性があると考えましたが、getIdentifier()メソッドは正しいR.raw IDを返し、openRawResource()でlogcatは常にこれを示します。

03-17 00:17:41.627: W/ResourceType(28752): No known package when getting value for resource number 0x7f040000
03-17 00:17:41.627: W/System.err(28752): android.content.res.Resources$NotFoundException: Resource ID #0x7f040000

そして、/assetsディレクトリからファイルをロードしようとすると:

AssetManager assetManager = context.getAssets();
bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));

...私は常にFileNotFoundExceptionを受け取ります:

03-17 00:33:32.006: W/System.err(30447): java.io.FileNotFoundException: /file.ini: open failed: ENOENT (No such file or directory)

誰かが私がこれを解決するのを手伝ってくれることを願っています、私はどこを見ればいいのかわかりません。インターネットでも同様の問題を検索して見つけましたが、解決策はありませんでした。

4

3 に答える 3

0

の場合、リソース名にファイル拡張子が含まれていないため、呼び出しは失敗しますfileName。を使用します(または、さらに良いことに、完全に削除して使用します)。file.inigetIdentifier()filegetIdentifier()R.raw.file

2番目のアプローチに関しては、プロジェクトディレクトリはである必要があります。assets/ではありませんasset/

于 2013-03-16T23:51:56.133 に答える
0

ファイル名を注意深く確認してください。

1)それらがすべて小文字であり、コーディングでそのように定義されていることを確認します2)yoruファイルタイプが正しいことを確認します(たとえば、.TTFとして参照される.OTFがこの問題を引き起こします)3)ファイルルートが正しいことを確認します。egrid.whatever

楽しむ :)

于 2013-03-16T23:54:20.937 に答える
0

わかりました、今私は間違いを見つけました。上に投稿したコードは機能していましたが、その直後に私のプログラムがメソッド (すべきでないこと) を呼び出し、FileNotFoundException が発生しました。このため、私はいつもコードの間違った部分を見ていました。/assets ディレクトリからファイルを開く方法を使用すると、正常に動作します。それにもかかわらず、助けてくれてありがとう。

于 2013-03-30T14:26:44.897 に答える