Read a file, if it doesn't exist then create

android, fileinputstream, fileoutputstream

Solution

Add

File file = new File(FILENAME);
if(!file.exists())
{  
   file.createNewFile()
   // write code for saving data to the file
}

above

fis = openFileInput(FILENAME);

This will check if there exists a `File` for the given `FILENAME` and if it doesn't it will create a new one.

Problem

Honestly, I've searched a lot do this task so I ended up trying various methods but nothing worked until I ended up on this code. It works for me perfectly like it should, so I do not want to change my code. The help I need is to put this code in a such a way that it begins to read a file, but if it the file doesn't exist then it will create a new file. Code for saving data: ``` String data = sharedData.getText().toString(); try { fos = openFileOutput(FILENAME, MODE_PRIVATE); fos.write(data.getBytes()); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } ``` Code for loading data: ``` FileInputStream fis = null; String collected = null; try { fis = openFileInput(FILENAME); byte[] dataArray = new byte [fis.available()]; while (fis.read(dataArray) != -1){ collected = new String(dataArray); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ``` So If I add the saving data code in to the "FileNotFoundException" catch of the loading data part then could I achieve what I want?

Original source

Related problems