Java читает файл, если он не существует, создайте его - PullRequest
3 голосов
/ 29 марта 2011

вот мой код

public String path;
public String fileName;
public static void readData() throws IOException{
    try {
        path="myPath"
        fileName="myFileName";
        fstream = new FileInputStream(path+fileName);
        br = new BufferedReader(new InputStreamReader(fstream));
        //do something...//
        }
        br.close();
    } catch (FileNotFoundException ex) {
        JOptionPane.showMessageDialog(null, "Reading file error");
        Logger.getLogger(LeggiDaFile.class.getName()).log(Level.SEVERE, null, ex);
    }
}

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

Ответы [ 5 ]

6 голосов
/ 29 марта 2011

Вот возможное решение:

public static void readData() throws IOException
{
    File file = new File(path, filename);

    if (!file.isFile() && !file.createNewFile())
    {
        throw new IOException("Error creating new file: " + file.getAbsolutePath());
    }

    BufferedReader r = new BufferedReader(new FileReader(file));

    try 
    {
        // read data
    }finally
    {
        r.close();
    }
}
2 голосов
/ 29 марта 2011

Что-то отсутствует в вашем коде - есть закрывающая скобка без соответствующей открывающей скобки.

Но чтобы ответить на ваш вопрос, сначала создайте объект File и используйте exists(), затем createNewFile(), если exists() вернет false. Передайте объект File вместо имени файла конструктору FileInputStream.

Кстати, вам понадобилось бы меньше времени, чтобы найти ответ, чем ввести свой вопрос здесь.

1 голос
/ 29 марта 2011

Чтобы проверить, существует ли файл filename в path, вы можете использовать new File(path, filename).exists().

Метод существует возвращает значение true, если в файловой системе существует файл или каталог для указанной File.

Чтобы убедиться, что файл является файлом, а не каталогом, вы можете использовать метод isFile .

См. javadoc для java.io.Файл для получения дополнительной информации.

0 голосов
/ 29 марта 2011
if(new File("filename").exists())
   ...

он должен делать то, что вы хотите.

0 голосов
/ 29 марта 2011

Вы уже ловите FileNotFoundException, и именно здесь вы знаете, что файл, который вы хотели прочитать, не существует, и вы можете его создать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...