0

这可能是一个重复的线程但是在尝试了几个和多个线程之后我的问题仍然存在:/

我有这个方法可以读取字典并用它进行解密。但是,我不知道如何让它阅读字典。我将字典拖放到资产文件夹中,然后使用此代码。

try {
    System.out.println("Dictionary Initialize");
    BufferedReader inputReader;
    FileInputStream fis = new FileInputStream("/assets/dictionary-english.txt");
    BufferedReader dictionary = new BufferedReader(new InputStreamReader(fis));
    String checktext;

    while ((checktext = dictionary.readLine()) != null) {
        dictionaryset.add(checktext);
    }
    System.out.println("Dictionary Successfully Initialized");

} catch (IOException ex) {
    System.out.println("Error! reading!");
}

经过几次测试,我已经确认它甚至无法到达 while 循环,因为 try 和 catch 捕获了错误。它也发现了一个IOException错误。知道如何解决这个问题吗?谢谢

这是我的错误logcat

10-06 14:54:50.555: W/System.err(1980): java.io.FileNotFoundException: /assets/dictionary-english.txt (No such file or directory)
10-06 14:54:50.555: W/System.err(1980):     at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
10-06 14:54:50.555: W/System.err(1980):     at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
10-06 14:54:50.555: W/System.err(1980):     at java.io.FileInputStream.<init>(FileInputStream.java:80)
10-06 14:54:50.565: W/System.err(1980):     at java.io.FileInputStream.<init>(FileInputStream.java:132)

编辑:尝试使用

AssetManager assetManager = getAssets();

但是,我收到一个错误,getAssets()“无法从 ContextWrapper 类型对非静态方法 getAssets() 进行静态引用”

==================================================== =======================

回答:

BufferedReader dictionary = new BufferedReader(new InputStreamReader(getAssets().open("dictionary-english")));    

我使用这行代码来获取我的文件,并在我删除的方法static中解决了我无法制作静态引用问题

eg;   private static String run1(String cipherText){  --> private String run1(String cipherText){
4

0 回答 0