我想從Android設備的下載文件夾下保存的文件中獲取JSON字符串。現在我可以使用提供的文件瀏覽器here來獲得這個路徑。在Android外部存儲中打開文件並閱讀JSON字符串
我試圖使用給定here的idion來打開文件並讀出一個字符串。 (顯然Android不使用Java 7?我無法使用這個問題的答案,我發現唯一的文件類是在android.provider.MediaStore下)
在任何情況下,我得到(有點) JSON字符串使用問題的成語。問題是我不能使用GSON的輸出(錯誤:期望BEGIN_OBJECT,但是在第1行第1列)
我懷疑這是因爲我從文件返回字符串函數看起來像這樣:
����z������9>{
"chEqEnable": [
[
true,
true,
... etc ...
而且occasionaly的發言權值,一個布爾是這樣的:
z������ true,
,而不是
true,
在處理Android和外部存儲時,是否有更好的方法來取得我的文件並從中讀取JSON字符串,是否免費?
僅供參考,這裏是我實現這個成語來自另一個問題是這樣的:
public static String file2String(String filePath) throws IOException
{
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line = null;
try{
while((line = reader.readLine()) != null)
{
stringBuilder.append(line);
}
} finally {
reader.close();
}
String returnStr = stringBuilder.toString();
return returnStr;
}
當我寫一個文件到外部存儲我用這個
public static String ExportTuning(Context context, String fileName, String json)
{
File path;
if(fileName.contains(".rfts")) {
path = GetDocumentsPath(fileName);
} else {
path = GetDocumentsPath(fileName+".rfts");
}
try {
FileOutputStream fileOut = new FileOutputStream(path);
ObjectOutput strOut = new ObjectOutputStream(fileOut);
strOut.writeUTF(json);
// strOut.writeChars(json); // this just causes a ton of gibberish when I read the file back
strOut.close();
fileOut.close();
String[] paths = new String[]{path.getAbsolutePath()};
MediaScannerConnection.scanFile(context, paths, null, null);
return "Save Successful";
}
catch(java.io.IOException e) {
return e.getMessage();
}
}
最後設法讓文件離開平板電腦(永遠不要購買華碩!)而且看起來像是所有的字節碼。我會給你的解決方案一個鏡頭。 –
沒錯,謝謝! –