1、首先,把json文件放到assets目录下,如图所示:
2、然后将json文件写入到指定目录:
String path = getApplicationContext().getDatabasePath("test.json").getPath(); // data/data目录
File file = new File(path);
FileUitls.copyFile(SecondActivity.this, "test.json", path);
if (!file.exists()) {
Toast.makeText(SecondActivity.this, "文件不存在", Toast.LENGTH_LONG).show();
return;
}
public class FileUitls {
public static void copyFile(Context context,String filename, String newFilePath) {
InputStream in = null;
FileOutputStream out = null;
// path为指定目录
File file = new File(newFilePath);
if (!file.exists()) {
try {
in = context.getAssets().open(filename); // 从assets目录下复制
out = new FileOutputStream(file);
int length = -1;
byte[] buf = new byte[1024];
while ((length = in.read(buf)) != -1) {
out.write(buf, 0, length);
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
}
3、再读取新路径下的文件
String modifyJson = "";
try {
modifyJson = readerMethod(file);
} catch (IOException e) {
e.printStackTrace();
}
private String readerMethod(File file) throws IOException {
FileReader fileReader = new FileReader(file);
Reader reader = new InputStreamReader(new FileInputStream(file), "Utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
String jsonStr = sb.toString();
return jsonStr;
}
最后拿到的readerMethod函数返回的结果,就是读取到的文件中json内容