[英]Read file from Android Assets with FileReader
我正在尝试从资产中读取文件,但它既不读取文件也不引发异常。 我正在OCR系统上工作,该系统读取单词或句子并通过将单词或字母表组与由“ names.txt”文件制成的ArrayList进行比较来从中提取名称。 名称大约为15000,每个名称存储在单独/单独的行中。 实际上,我正在将这些名称添加到ArrayList中以了解该文件中是否存在特定名称。 一切都已完成并经过测试,剩下的唯一内容就是读取文件。 我已经尝试过使用Java IDE从驱动器读取文件的相同代码,并且该代码可以在Java ide上运行,但不能在Android Studio中使用。 尝试了一段代码:
FileReader freader = new FileReader("file:///android_asset/names.txt");
BufferedReader br = new BufferedReader(freader);
我也尝试过
FileReader freader = new FileReader(getAssets().open("names.txt"));
BufferedReader br = new BufferedReader(freader);
给出错误
Error:(1387, 26) error: no suitable constructor found for FileReader(InputStream)
constructor FileReader.FileReader(File) is not applicable (argument mismatch; InputStream cannot be converted to File)
constructor FileReader.FileReader(FileDescriptor) is not applicable (argument mismatch; InputStream cannot be converted to FileDescriptor)
constructor FileReader.FileReader(String) is not applicable (argument mismatch; InputStream cannot be converted to String)"
还有这个:
FileReader freader = new FileReader(context.getAssets().open("names.txt"));
BufferedReader br = new BufferedReader(freader);
表示“无法解析符号“上下文””
文件的路径在这里 。
您不需要FileReader
。 使用包裹在InputStreamReader
的BufferedReader
包裹在已经从getAssets().open()
获得的InputStreamReader
周围的InputStream
。
FileReader需要文件系统路径。
没有输入流的构造函数。
因此,您不能使用FileReader从资产中“读取”文件。
将文件从资产复制到文件系统。
之后,在文件系统上使用该文件。
如果您不坚持使用FileReader,则可以进行更改
FileReader freader = new FileReader(getAssets().open("names.txt"));
BufferedReader br = new BufferedReader(freader);
至
InputStream is = getAssets().open("images/names.txt");
BufferedReader br = new BufferedReader(is);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.