0

csvファイルを読みたいのですが。そのために、私はこのように使用するCSVReaderを見つけました:

List myEntries = null;
    try {
        AssetFileDescriptor descriptor = getAssets().openFd("file.csv");
        CSVReader csvReader = new CSVReader(new FileReader(descriptor.getFileDescriptor()), ',', '"');
        myEntries = csvReader.readAll();
        csvReader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

しかし、私はこのエラーを受け取りました:FileNotFoundException:このファイルはファイル記述子として開くことができません。おそらく圧縮されています。

私のファイルはアセットフォルダにあります。

私はすでにこのスレッドを見ました:java.io.FileNotFoundException:このファイルはファイル記述子として開くことができません。それはおそらく圧縮 されていますそれは私をまったく助けませんでした。

だから、私は何か間違ったことをしなければなりませんが、何ですか?ファイルを別のフォルダに置いて、別の方法で開く必要がありますか?

4

1 に答える 1

4

Androidは、次のタイプを除くすべてのアセットを圧縮します。

".jpg", ".jpeg", ".png", ".gif",
".wav", ".mp2", ".mp3", ".ogg", ".aac",
".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
".amr", ".awb", ".wma", ".wmv"

ビルドプロセスを十分に制御できる場合は、zipまたはaaptで「-0」フラグを使用してアセットを追加できます。

-0は、そのようなファイルが.apkに圧縮されて保存されない追加の拡張子を指定します。空の文字列は、ファイルをまったく圧縮しないことを意味します。

CSVReaderを使用してそれを行う機会がある場合は、sdcardなどのアセットフォルダー以外の場所にcsvファイルを保存してください。

于 2012-07-26T23:25:15.757 に答える