2016-01-19 11 views
7

1.私はAndroid GPSを保存しています。SDカード内のテキストログファイルを使用して時刻を有効または無効にしています。Android GPS有効/無効時間の保存マルチテキスト行のSDCARD内のテキストファイル

前の行のデータを消去せずに、複数行のテキストを印刷したいとします。

以下のコードは、アプリケーションがスリープ状態になって再起動しているときに、完全に複数の行を印刷しています。以前のデータと一緒に行を印刷する場合は、GPSをオンまたはオフにします。

どうすればいいですか?

Required Output:(after Restart the app) 

<< GPs Enabled At :2016/06/08 17.15.00>> 
<< GPs Disabled At :2016/06/08 17.45.00>> 
<< GPs Enabled At :2016/06/08 17.49.00>> 
<< GPs Disabled At :2016/06/08 17.52.00>> 

Getting Output:(after Restart the app) 

<< GPs Enabled At :2016/06/08 17.15.00>> 
<< GPs Disabled At :2016/06/08 17.45.00>> 
<< GPs Enabled At :2016/06/08 17.49.00>> 
<< GPs Disabled At :2016/06/08 17.52.00>> 
<< GPs Disabled At :2016/06/08 17.52.00>> 
<< GPs Disabled At :2016/06/08 17.52.00>> 

ログファイルの方法:

public void Logmethod(String NoramalStr,String Dateval) 
    { 

    /* Log FOlder Text files Starts here*/ 
      try { 

       File newFolder = new File(Environment.getExternalStorageDirectory(), "GpsFolder"); 
       if (!newFolder.exists()) { 
        newFolder.mkdir(); 
       } 
       try { 
        File file = new File(newFolder, "GPSStatus" + ".txt"); 
        file.createNewFile(); 

       /*Writing the Log in specific files*/ 
        BufferedWriter out; 
        try { 


         String separator1 = System.getProperty("line.separator"); 
         FileOutputStream fOut = new FileOutputStream(new File(newFolder + "/GPSStatus.txt"), true); 
         OutputStreamWriter osw = new OutputStreamWriter(fOut); 
         osw.append("<< " + NoramalStr +" : "+Dateval + " >>"); 
         osw.append(separator1); // this will add new line ; 
         osw.flush(); 
         osw.close(); 
         fOut.close(); 

         Log.i(NoramalStr," : "+Dateval); 

        } catch (FileNotFoundException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 


       } catch (Exception ex) { 
        System.out.println("ex: " + ex); 
       } 
      } catch (Exception e) { 
       System.out.println("e: " + e); 
      } 


     } 
+2

私は疑問について少しは不明です。 「消去」という言葉は何度か言及されていますが、必要な出力と実際の出力の違いは、重複した行を印刷していることです。重複や消しゴムの問題ですか? – OYRM

+0

Logmethodが複数回呼び出されているようです。そのメソッドを呼び出すコードを追加できますか? – TDG

+0

@Kumar:アプリが実行されていないときにログを印刷しようとしているか、デバイスを再起動していますか? –

答えて

0

は、ログファイルの消去についての質問場合: あなたは常にcreateNewFileは、ファイルをチェックしてみますが

public void Logmethod(String NoramalStr, String Dateval) { 

    try { 

     File newFolder = new File(Environment.getExternalStorageDirectory(), "GpsFolder"); 
     boolean directoryExists = newFolder.exists(); 

     Log.d(TAG, " directoryExists = " + directoryExists); 

     if (!directoryExists) { 
      boolean dirCreate = newFolder.mkdir(); 
      Log.d(TAG, " dirCreate = " + dirCreate); 
     } 
     File file = new File(newFolder, "GPSStatus" + ".txt"); 

     boolean fileExists = file.exists(); 
     Log.d(TAG, " fileExists = " + fileExists); 

     if (!fileExists) { 
      boolean fileCreateResult = file.createNewFile(); 
      Log.d(TAG, " fileCreateResult = " + fileCreateResult); 
     } 

     String separator1 = System.getProperty("line.separator"); 
     FileOutputStream fOut = new FileOutputStream(new File(newFolder + "/GPSStatus.txt"), true); 
     OutputStreamWriter osw = new OutputStreamWriter(fOut); 
     osw.append("<< "); 
     osw.append(NoramalStr); 
     osw.append(" : "); 
     osw.append(Dateval); 
     osw.append(" >>"); 
     osw.append(separator1); // this will add new line ; 
     osw.flush(); 
     osw.close(); 
     fOut.close(); 

     Log.i(TAG, " : " + Dateval); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
が存在する

の場合それは、ロケーション・プロバイダの永久的なリスニングに関するものです。 How do I receive the system broadcast when GPS status has changed? を見て、マニフェストファイルに

<receiver android:name=".GPStStatusReceiver"> 
     <intent-filter> 
      <action android:name="android.location.PROVIDERS_CHANGED" /> 
     </intent-filter> 
    </receiver> 
0
try { 
      File file = new File(newFolder, "GPSStatus" + ".txt"); 
       if (!file.exists()) { 
      file.createNewFile(); 
     } 

、その後

 FileWriter writer = new FileWriter(file,true); 
     writer.append(response);// you want to expand 
     writer.flush(); 
     writer.close(); 
     Log.e("Suceess", "'file Write"); 

を受信機を使用してこのヘルプあなたは

関連する問題