json 파일을 만들었습니다. 이 파일은 다른 파일로 복사해야합니다. 이것은 json 파일입니다.
[
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:30:34 GMT+00:00 2015",
"message": "Hello i'm older"
}
][
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:35:22 GMT+00:00 2015",
"message": "Hello i'm older"
}
][
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:35:24 GMT+00:00 2015",
"message": "Hello i'm older"
}
]
이 파일을 읽고 다른 파일에 넣습니다. 이것이 내가 시도한 것입니다.
private void copyFile(File file) throws IOException {
String TAG = "MyTest";
Toast.makeText(this, "copyFile", Toast.LENGTH_SHORT).show();
FileInputStream in = openFileInput("backupMessage.json");
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
reader.beginArray();
while (reader.hasNext()) {
String number = null;
String date = null;
String message = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("Number")) {
number = reader.nextString();
Log.d(TAG, number);
} else if (name.equals("Date")) {
date = reader.nextString();
Log.d(TAG, number);
} else if (name.equals("message")) {
message = reader.nextString();
Log.d(TAG, number);
} else {
reader.skipValue();
Log.d(TAG, "skip");
}
}
if(number != null && date != null && message != null){
writer(file, number, date, message);
Log.d(TAG, "called writer");
}
reader.endObject();
}
reader.endArray();
reader.close();
}
private void writer(File file,String number,String date, String message){
Toast.makeText(this, "writer", Toast.LENGTH_SHORT).show();
FileOutputStream stream = null;
try {
stream = new FileOutputStream(file, true);
JsonWriter jwriter = new JsonWriter(new OutputStreamWriter(stream,"UTF-8"));
jwriter.setIndent(" ");
jwriter.beginArray();
jwriter.beginObject();
jwriter.name("Number").value(number);
jwriter.name("Date").value(date);
jwriter.name("message").value(message);
jwriter.endObject();
jwriter.endArray();
jwriter.close();
stream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
그러나 이것은 작동하지 않습니다. 즉, 전체 파일을 읽지 않음을 의미합니다. 첫 번째 노드 만 읽고 있는데 전체 파일을 어떻게 읽을 수 있습니까?
JSON 변경
[
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:30:34 GMT+00:00 2015",
"message": "Hello i'm older"
},
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:35:22 GMT+00:00 2015",
"message": "Hello i'm older"
},
{
"Number": "0123456789",
"Date": "Tue Jul 21 14:35:24 GMT+00:00 2015",
"message": "Hello i'm older"
}
]
그런 다음 다음과 같이 구문 분석 할 수 있습니다.
try
{
JSONObject tmp = null;
JSONArray array = new JSONArray(YOUR_JSON_AS_A_STRING);
for (int i=0; i<array.length(); i++)
{
tmp = array.getJSONObject(i);
writer(file, tmp.getString("Number"), tmp.getString("Date"), tmp.getString("message"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다