Java 从Android中的资产文件夹读取文件时出现问题

Java 从Android中的资产文件夹读取文件时出现问题,java,android,readfile,Java,Android,Readfile,这个问题是关于你的。因为这是一个特定的问题,所以我在这里单独提出了这个问题。我尝试创建一个文本文件“foo.txt”,并将其读入我的活动中,具体操作如下: File file = new File("/assets/foo.txt"); if ( file.exists() ){ txtView.setText("Exists"); } else{ txtView.setText("Does not exist"); } “foo.txt”文件位于我的资产文件夹中,我已验证它是

这个问题是关于你的。因为这是一个特定的问题,所以我在这里单独提出了这个问题。我尝试创建一个文本文件“foo.txt”,并将其读入我的活动中,具体操作如下:

File file = new File("/assets/foo.txt");
if ( file.exists() ){
    txtView.setText("Exists");
}
else{
    txtView.setText("Does not exist");
}
“foo.txt”文件位于我的资产文件夹中,我已验证它是否存在于操作系统中。我的文本视图总是从上面的代码中获取文本“不存在”。我试过去

File file = new File("/assets/foo.txt");
Scanner in = new Scanner(file);
同样,但这会产生以下内联错误:“未处理的异常类型FileNotFoundException”。Eclipse然后建议使用try/catch,这会删除错误,但也不能正常工作

我还尝试将我的资产文件夹设置为“用作源文件夹”,但这没有任何区别。我也尝试过使用一个原始文件夹,因为有几个人建议它没有用。我别无选择,真的需要帮助。应该很容易

另一个尝试是去

AssetManager assetManager = getResources().getAssets();
InputStream is = assetManager.open("assets/foo.txt");

但这会在第二行“未处理的异常类型IOException”中产生内联错误。

您在运行时不能使用
文件
访问
资产/
。您可以在运行时使用
AssetManager
访问
AssetManager/
,您可以通过
getResources().getAssets()
访问该资源。在这种情况下,我使用Commonware(这是安全的:),但它应该是:

AssetManager assetManager = getResources().getAssets();
InputStream inputStream = null;

    try {
        inputStream = assetManager.open("foo.txt");
            if ( inputStream != null)
                Log.d(TAG, "It worked!");
        } catch (IOException e) {
            e.printStackTrace();
        }
不要使用InputStream is=assetManager.open(“assets/foo.txt”)

尝试以下操作:

    private AssetManager am;
     am=getAssets();

     InputStream inputStream = null ;  
        try   
        {  
            inputStream = am.open("read.txt");  
        }   
        catch (IOException e) {}  

我也试过了,很抱歉没有提及。我已经更新了我的帖子。@Krøllebølle:请看另一个答案——您需要删除路径中的
资产/
。当仅使用“foo.txt”时,仍然会生成“未处理的异常类型IOException”。我从Eclipse中获得了用try/catch包围它的选项,但这没有什么区别:(如果使用
this.getAssets()
而不是
getResources().getAssets(),会有什么变化吗?)
?@Krøllebølle-另外,请清理并重建项目。好的,所以我确实清理了项目,它突然工作了,不确定是清理让这个把戏成功还是睡了个好觉。但它必须与@imrankhan描述的try/catch语句(Eclipse要求)。谢谢!\o/我已经尝试阅读了“.docx”像这样的文件。结果是编码格式的。我如何解决这个问题?你能像你的projectname/assets/filename那样将我完全粘贴到你的文件上吗?谢谢,在我按照@BinyaminSharet的建议进行了清理之后,它就可以工作了。Eclipse要求try/catch绕过inputStream=am.open(“foo.txt”);它现在就可以工作了。谢谢!