2015-11-14 4 views
0

Я сделал приложение, которое принимает пользовательский ввод, сохраняет его в текстовый файл, а затем отображает его из текстового файла на экран после того, как пользователь нажимает кнопку отправки. Приложение работает идеально, но когда я иду в свой телефон, я не могу найти текстовый файл. Кто-нибудь знает, почему это может быть?Почему я не могу найти свой текстовый файл, который я создал на моем Android-телефоне?

Мой Java-код:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myFile = new FileUtility(); 
    myFile.createFile(getApplicationContext(), "tester"); 
    Button b = (Button)findViewById(R.id.button); //button 

    final TextView out = (TextView) findViewById(R.id.output); 



    //button listener, when button clicked, produce output on textfield "Score" 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final TextView line1 = (TextView) findViewById(R.id.line1); 
      final TextView line2 = (TextView) findViewById(R.id.line2); 
      final TextView t = (TextView) findViewById(R.id.title); 
      Button b = (Button)findViewById(R.id.button); 

      line1.setVisibility(View.GONE); 
      line2.setVisibility(View.GONE); 
      b.setVisibility(View.INVISIBLE); 

      String first = line1.getText().toString(); 
      String second = line2.getText().toString(); 
      myFile.writeLine(first); 
      myFile.writeLine(second); 

      String output = myFile.readAll(); 

      out.setText(output); 
      t.setText("File Output"); 

     } 

    }); 

Для справки здесь класс FileUtility я сделал:

public class FileUtility { 

private File root; 
private File file; 

public FileUtility() { 
    root = Environment.getExternalStorageDirectory(); 
} 

public void createFile(Context context, String fileName) { 
    try { 
     if (root.canWrite()) { 
      file = new File(root, "//" + fileName); 
      if (!file.exists()) { 
       file.createNewFile(); 
      } 
     } 
     else 
     { 
      file = new File(context.getFilesDir(), "//" + fileName); // File(root, "//" + fileName); 
      if (!file.exists()) { 
       file.createNewFile(); 
      } 
     } 
    } catch (IOException e) { 
     Log.e("Error", "fail to create a new file"); 
    } 

} 

public String readAll() { 
    StringBuilder returnString = new StringBuilder(); 
    try { 
     BufferedReader in; 
     FileReader datawriter = new FileReader(file); 
     in = new BufferedReader(datawriter); 
     if (file.exists()) { 
      String str = null; 
      while((str=in.readLine())!=null) 
      { 
       returnString.append(str + "\n"); 
      } 
     } 
     in.close(); 
    } catch (IOException e) { 
     Log.e("Error", "fail to write file"); 
    } 
    return returnString.toString(); 
} 

public void writeLine(String message) { 
    try { 
     BufferedWriter out; 
     FileWriter datawriter = new FileWriter(file,true); 
     out = new BufferedWriter(datawriter); 
     if (file.exists()) { 
      out.write(message + "\n"); 
      out.flush(); 
     } 
     out.close(); 
    } catch (IOException e) { 
     Log.e("Error", "fail to write file"); 
    } 
} 

}

+0

Возможно, вам нужно укоренить свой телефон. – Stanojkovic

+0

, пожалуйста, не переустанавливайте свой телефон только для записи на внешнее хранилище. Это смехотворное предложение. – Kuffs

ответ

1

Я тестировал код его рабочий, я использовал

myFile.createFile(this, "tester.txt"); 

может быть, ваш Filemanager не показывает файл, файловый менеджер вы используете? Я просмотрел его с помощью ES explorer

+0

Спасибо, мне также пришлось изменить его на .txt, чтобы я мог его прочитать. – joe

+0

, пожалуйста, поддержите мой ответ – Rohit

+0

Недостаточно репутации – joe

Смежные вопросы