2011-12-08 12 views
0

私は問題があります。 test.txtというコードテキストファイルを作成してから、catコマンドでシステムファイルからテキストを取得し、このテキストをtest.txtに入れますが、このファイルからテキストを読み取る方法はわかりません。私はこのファイルからテキストを読んで、それを私のSharedPreferencesに保存する必要があります。あなたが「コピー」ファイルは、それを読むためにSDカードする必要はありませんsdcardファイルからテキストを読み取る方法は?

try { 
      FileOutputStream fos = new FileOutputStream("/sdcard/test.txt"); 
      DataOutputStream dos = new DataOutputStream(fos); 
      dos.flush(); 
      dos.close(); 
     } catch (FileNotFoundException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

Process a; 
     try { 
      a = Runtime.getRuntime().exec("su"); 

      DataOutputStream aaa = new DataOutputStream(a.getOutputStream()); 
      aaa.writeBytes("cat /proc/sys/sad/asdsad > /sdcard/test.txt\n"); 
      aaa.writeBytes("exit\n"); 
      aaa.flush(); 
      try { 
       a.waitFor(); 
       if (a.exitValue() != 255) { 
        // TODO Code to run on success 
        toastMessage("root"); 
        } 
       else { 
        // TODO Code to run on unsuccessful    
        toastMessage("not root"); 
        } 
      } catch (InterruptedException e) { 
       // TODO Code to run in interrupted exception  
       toastMessage("not root"); 
       } 
     } catch (IOException e) { 
      // TODO Code to run in input/output exception 
      toastMessage("not root"); 
      } 

答えて

3

:ここ コードです。

とにかく、 "cat"をコピーに使用することは、アプリケーションでは望んでいません。操作のすべての制御を緩めると、エラーの検出と処理がより困難になります。

FileReaderBufferedReaderをそのまま使用してください。例はhereです。ここにコピーがあります:

File file = new File("test.txt"); 
StringBuffer contents = new StringBuffer(); 
BufferedReader reader = null; 

try { 
    reader = new BufferedReader(new FileReader(file)); 
    String text = null; 

    // repeat until all lines is read 
    while ((text = reader.readLine()) != null) { 
     contents.append(text) 
      .append(System.getProperty(
       "line.separator")); 
    } 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     if (reader != null) { 
      reader.close(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
}   

Log.e("TEXT", contents.toString()); 

すべてこれは非常に基本的なものです。いくつかのJava関連の本またはいくつかの記事を読むことを検討する必要があります。

+0

はい、私はこのコードを知っていますし、基本的なプログラミングはとてもうまく行っていますが、私は最近Androidでプログラミングを始めました。私の問題は、共有環境設定にcatコマンドを使ってシステムファイルから取得したテキストを保存する方法がわからないことです。最初の簡単な方法は、システムファイルから私のSharedPreferencesにテキストを直接入力することですが、どうやって作成するのか分かりません。または、catを使ってテキストを取得し、このファイルにテキストを入れ、作成したファイルからこのテキストをSharedPreferencesに入れて、テキストを取得します。 – Adam

関連する問題