Androidデバイスのダウンロードフォルダに保存されたファイルからJSON文字列を取得しようとしています。今私はhereで提供されているファイルブラウザを使用して、これにちょうどいいパスを得ることができます。Android外付けストレージでファイルを開き、JSON文字列を読み取る
hereというidionを使用してファイルを開き、文字列を読み取ろうとしました。 (明らかにAndroidはJava 7を使用していないのですが、私はこの質問の回答を使用することができません、android.provider.MediaStoreのファイルクラスは唯一のものです)
いずれにしてもJSON文字列は質問のイディオムを使用しています。問題はGSONで出力を使用することができません(エラー:BEGIN_OBJECTは期待されていましたが、1行目の列1にSTRINGしていました)
ファイルから文字列関数に戻ってきたものが次のようになります。
����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();
}
}
最終的にタブレットからファイルを取得することができました(ASUSを購入しないでください!)そして、それはすべてのバイトコードのようです。私はあなたの解決策を与えるでしょう。 –
うん、それは、ありがとう! –