简体   繁体   English

在内部存储中本地创建json文件时出错

[英]Error in creating json file locally in internal storage

I want to store json file internally from server. 我想从服务器内部存储json文件。 For that I am using below method. 为此,我正在使用以下方法。 but I got error. 但我有错误。 Please help on it. 请帮忙。

             try { 

                 final String TESTSTRING =jsonBranchArray.toString();


                   FileOutputStream fOut = openFileOutput("samplefile.json",
                                                                        MODE_WORLD_READABLE);
                   OutputStreamWriter osw = new OutputStreamWriter(fOut); 


                   osw.write(TESTSTRING);
                   osw.flush();
                   osw.close();

                    FileInputStream fIn = openFileInput("samplefile.json");
                    InputStreamReader isr = new InputStreamReader(fIn);

                    char[] inputBuffer = new char[TESTSTRING.length()];

                    isr.read(inputBuffer);

                    String readString = new String(inputBuffer);

                    boolean isTheSame = TESTSTRING.equals(readString);

                    Log.i("File Reading stuff", "success = " + isTheSame);


        } catch (IOException ioe) {
                ioe.printStackTrace();
        }

And error is.. 08-02 12:26:13.449: W/dalvikvm(23547): threadid=1: thread exiting with uncaught exception (group=0x40015560) 08-02 12:26:13.459: E/AndroidRuntime(23547): FATAL EXCEPTION: main 08-02 12:26:13.459: E/AndroidRuntime(23547): java.lang.NullPointerException 08-02 12:26:13.459: E/AndroidRuntime(23547): at com.example.MainActivity.WriteToFile(MainActivity.java:224) 08-02 12:26:13.459: E/AndroidRuntime(23547): at com.example.MainActivity.onClick(MainActivity.java:90) 08-02 12:26:13.459: E/AndroidRuntime(23547): at android.view.View.performClick(View.java:2485) 08-02 12:26:13.459: E/AndroidRuntime(23547): at android.view.View$PerformClick.run(View.java:9080) 08-02 12:26:13.459: E/AndroidRuntime(23547): at android.os.Handler.handleCallback(Handler.java:587) 08-02 12:26:13.459: E/AndroidRuntime(23547): at android.os.Handler.dispatchMessage(Handler.java:92) 08-02 12:26:13.459: E/AndroidRuntime(23547): at android.os.Looper.loop(Looper.java:123) 08-02 12:26:13.459: E/AndroidRuntime(235 错误是.. 08-02 12:26:13.449:W / dalvikvm(23547):threadid = 1:线程退出时未捕获到异常(group = 0x40015560)08-02 12:26:13.459:E / AndroidRuntime(23547) :致命异常:主08-02 12:26:13.459:E / AndroidRuntime(23547):java.lang.NullPointerException 08-02 12:26:13.459:E / AndroidRuntime(23547):在com.example.MainActivity.WriteToFile (MainActivity.java:224)08-02 12:26:13.459:E / AndroidRuntime(23547):at com.example.MainActivity.onClick(MainActivity.java:90)08-02 12:26:13.459:E / AndroidRuntime (23547):位于android.view.View.performClick(View.java:2485)08-02 12:26:13.459:E / AndroidRuntime(23547):位于android.view.View $ PerformClick.run(View.java: 9080)08-02 12:26:13.459:E / AndroidRuntime(23547):at android.os.Handler.handleCallback(Handler.java:587)08-02 12:26:13.459:E / AndroidRuntime(23547):at android.os.Handler.dispatchMessage(Handler.java:92)08-02 12:26:13.459:E / AndroidRuntime(23547):at android.os.Looper.loop(Looper.java:123)08-02 12: 26:13.459:E / AndroidRuntime(235 47): at android.app.ActivityThread.main(ActivityThread.java:3683) 08-02 12:26:13.459: E/AndroidRuntime(23547): at java.lang.reflect.Method.invokeNative(Native Method) 08-02 12:26:13.459: E/AndroidRuntime(23547): at java.lang.reflect.Method.invoke(Method.java:507) 08-02 12:26:13.459: E/AndroidRuntime(23547): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 08-02 12:26:13.459: E/AndroidRuntime(23547): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 08-02 12:26:13.459: E/AndroidRuntime(23547): at dalvik.system.NativeStart.main(Native Method) 47):位于android.app.ActivityThread.main(ActivityThread.java:3683)08-02 12:26:13.459:E / AndroidRuntime(23547):位于java.lang.reflect.Method.invokeNative(本机方法)08- 02 12:26:13.459:E / AndroidRuntime(23547):at java.lang.reflect.Method.invoke(Method.java:507)08-02 12:26:13.459:E / AndroidRuntime(23547):at com。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)08-02 12:26:13.459:E / AndroidRuntime(23547):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :597)08-02 12:26:13.459:E / AndroidRuntime(23547):位于dalvik.system.NativeStart.main(本机方法)

and sample json is.. 和示例json是..

    {
      "Title" : "........Name....",
  "Logo" : "http://test/1.jpg",
"ID" : "1015",
"Contact":{
   "Title" : " something ",
   "Image" : "http://test/1.jpg",
"ID" : "1016",
   "Full Address" : " something   something   something  something  something ",
   "Contact No" : ".....Post Date with Time....",
   "Mail ID" : ".....Start Date with Time....",
   "SiteLink" : "...wwww.abc.com......",
   "LandLine No" : ".....End Date with Time...."
},
"Activities" : {"News":[
{
   "Image" : "http://test/1.jpg",
"ID" : "1017",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."
},{
   "Image" : "http://test/2.jpg",
"ID" : "1018",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."

},{
   "Image" : "http://test/3.jpg",
"ID" : "1019",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."


},{
   "Image" : "http://test/4.jpg",
"ID" : "1020",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."

},{
   "Image" : "http://test/5.jpg",
"ID" : "1021",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."

},{
   "Image" : "http://test/6.jpg",
"ID" : "1022",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."

},{
   "Image" : "http://test/7.jpg",
"ID" : "1023",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Date" : ".....Post Date...."

}
],
"Events":[
{
   "Image" : "http://test/7.jpg",
"ID" : "1024",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Location" : "......Event Loc......",
   "Start Date" : ".....Start Date with Time....",
   "End Date" : ".....End Date with Time...."
},{
   "Image" : "http://test/3.jpg",
"ID" : "1025",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Location" : "......Event Loc......",
   "Start Date" : ".....Start Date with Time....",
   "End Date" : ".....End Date with Time...."

},{
   "Image" : "http://test/4.jpg",
"ID" : "1026",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Location" : "......Event Loc......",
   "Start Date" : ".....Start Date with Time....",
   "End Date" : ".....End Date with Time...."

},{
   "Image" : "http://test/1.jpg",
"ID" : "1027",
   "Title" : " something ",
   "Description" : " something   something   something  something  something ",
   "Location" : "......Event Loc......",
   "Start Date" : ".....Start Date with Time....",
   "End Date" : ".....End Date with Time...."

}
]...as so on

From Error what i can see is you are not using a Asynchronous task and generating network request, Add a Asynchronous Task and perform network request in separate thread ! 从错误中我看到的是您没有使用异步任务并正在生成网络请求,请添加异步任务并在单独的线程中执行网络请求!

       class GetContacts extends AsyncTask<Void, String, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();


        }

        @Override
        protected Void doInBackground(Void... params) {
            DefaultHttpClient httpclient = new DefaultHttpClient();
            try {
                HttpGet httpget = new HttpGet(
                        "url");
                HttpResponse response = httpclient.execute(httpget);
                String jsonResp = EntityUtils.toString(response.getEntity());
                Log.d("HTTP","Rsponse : "+ jsonResp);

                JSONObject jsonObject = new JSONObject(jsonResp);

                /// ADD YOUR CODE HERE------------------------------------------------------------->


            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM