2015-03-11 7 views
0

Я пытаюсь написать вывод atrace на SDCard. Я использую getRuntime(). Exec() ("atrace gfx> /storage/sdcard0/trace.txt") в app.App подписывается как системное приложение, и команда отлично работает с терминалом. Но ни один файл создается при запуске приложения из приложения.Записать вывод команды оболочки android в файл

+0

ли сохранить вам это? –

+0

Имеет ли ваше приложение разрешение на открытие файла на внешнем хранилище? (Http://developer.android.com/training/basics/data-storage/files.html) – fadden

ответ

0

Я решил ее чтения данных из InputStream и записи его в файл

try { 


         Process p = Runtime.getRuntime().exec("atrace -t 5 gfx"); 
         p.waitFor(); 
         BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
         String line = reader.readLine(); 
         File myFile = new File("/storage/sdcard0/trac.txt"); 
         FileOutputStream f = null; 

         try { 
          f = new FileOutputStream(myFile); 
         } catch (FileNotFoundException e) { 
          e.printStackTrace(); 
         } 
         PrintWriter pw = new PrintWriter(f); 
         while (line != null) { 
          pw.println(line); 

          //Toast.makeText(getBaseContext(), line, Toast.LENGTH_LONG).show(); 
          line = reader.readLine(); 
         } 
         pw.flush(); 
         pw.close(); 
         f.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
Смежные вопросы