我不知道为什么我无法从内部存储中读取文件
代码出错:
public String readFile()
{
try
{
String filePath = MainActivity.this.getFilesDir() + "/"+"Contacts"+"/" + "Contacts";
File file = new File( filePath );
FileReader reader = new FileReader(file);
reader.read(jsonString);
} catch(IOException e) {
e.printStackTrace();
String importError = e.getMessage();
}
return jsonString;
}
错误位于reader read (jsonString)
,即can not resolve method read(java.lang.String)
答案 0 :(得分:1)
<强>问题:
强>
错误告诉你出了什么问题:
无法解析方法
read(java.lang.String)
<强>原因:强>
FileReader
继承了Reader中的read
方法,您可以找到Reader
中的,例如Reader.read(CharBuffer)
或Reader.read(char[])
,但不是{{ 1}} 强>
Reader.read(String)
尝试将字符读入指定的字符缓冲区。缓冲区按原样用作字符存储库:唯一的更改是put操作的结果。不执行缓冲器的翻转或倒带。
<强>解:
强>
要解决您的问题,只需将public int read(char[] cbuf) throws IOException
转换为jsonString
或CharBuffer
,例如:
char[]
添加-ON&#39; S:强>
可用的char cbuf[] = jsonString.toCharArray();
reader.read(cbuf);
方法:
Read.read()
答案 1 :(得分:0)
如果您想从资产中读取,这是我上一个应用程序的代码的一部分 文件位置:/ assets
try {
InputStream input = context.getAssets().open(file_name);
byte[] buffer = new byte[input.available()];
input.read(buffer);
input.close();
data_file = new String(buffer);
} catch (IOException e) {
Log.e("File err", "-----" + e.getMessage().toString());
}
答案 2 :(得分:-2)
修改强> 为什么你得到错误是因为你没有声明jsonString(它需要是一个charbuffer)
public String readFile()
{
//Create Charbuffer to save file in
CharBuffer buffer = null;
try
{
String filePath = MainActivity.this.getFilesDir() + "/"+"Contacts"+"/" + "Contacts";
File file = new File(filePath);
FileReader reader = new FileReader(file);
reader.read(buffer);
return buffer.toString();
}
catch(IOException e) {
e.printStackTrace();
String importError = e.getMessage();
return null;
}
}