2012-02-24 4 views
-1

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

public class newfile extends Activity { 
    public EditText textBox,textbox2; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.newfile); 
     Button save = (Button) findViewById(R.id.btnSave); 
     save.setOnClickListener(new View.OnClickListener(){ 

      public void onClick(View v) { 
       textBox = (EditText) findViewById(R.id.txtText1); 
       textbox2 = (EditText) findViewById(R.id.fname); 

       String FILENAME = textbox2.getText().toString(); 
       String value = textBox.getText().toString(); 
       File("R.raw",value); 

       FileOutputStream fos=null ; 
       fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
       try { 
        fos.write(((String) value).getBytes()); 
        fos.flush(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       try { 
        fos.close(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       }  
      } 

      private void File(String string, String value) { 
       // TODO Auto-generated method stub 
      } 

      private FileOutputStream openFileOutput(String fILENAME, 
        int modePrivate) { 
       // TODO Auto-generated method stub 
       return null; 
      } 
     }); 
    } 
} 

ответ

2

openFileOutput возвращает null? Майби, почему ваши приложения?

0

Используйте getFilesDir(), чтобы получить абсолютный путь к вашему приложению и использовать его для создания файла в папке вашего приложения. В противном случае вы не имеете права создавать файлы повсюду.

http://developer.android.com/reference/android/content/Context.html#getFilesDir()

1

Удалить эту строку ...

File("R.raw",value); 

Удалить эти методы ...

private void File(String string, String value) { 
    // TODO Auto-generated method stub 

} 

private FileOutputStream openFileOutput(String fILENAME, 
     int modePrivate) { 
    // TODO Auto-generated method stub 
    return null; 
} 

Surround эту линию ...

fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 

... с try/catch блок, как так ...

try { 
    fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
+0

спасибо Ihave сделать вышеуказанные изменения, но я все еще получаю диалог в затмении «такого рода запуска настроен, чтобы открыть перспективу отладки, когда он приостановит», я Wnt создать файл на ходу, когда пользователь вводит имя файла @ filedata, он нажимает кнопку сохранения, которая должна создавать файл, беря имя файла из xtboxt. Я хочу сохранить файл в папке res/raw, которую я создал .please помогите мне. –

+0

Вы не можете изменить папку '/ res', любую из ее подпапок (или любой из файлов, которые они содержат) во время выполнения. Папка '/ res' предназначена для хранения материалов, упакованных во время сборки и в основном« только для чтения ». – Squonk

+0

MisterSquonk, так как я могу решить эту проблему –

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