我如何才能编写干净简单的代码

时间:2019-01-07 04:55:48

标签: java if-statement

我刚刚编写了这段代码。但我想简单,干净地更改此代码。

您有任何反馈吗?

try {
        if (!videoFile.exists()) {
            videoFile.createNewFile();
        } else {
            videoFile.delete();
            videoFile.createNewFile();
        }
        if (!cnFile.exists()) {
            cnFile.createNewFile();
        } else {
            cnFile.delete();
            cnFile.createNewFile();
        }
        if (!enFile.exists()) {
            enFile.createNewFile();
        } else {
            enFile.delete();
            enFile.createNewFile();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

4 个答案:

答案 0 :(得分:3)

在if / else的两个分支中,创建文件。将其移出if语句

    if (videoFile.exists())
        videoFile.delete();
    videoFile.createNewFile();

    if (cnFile.exists())
        cnFile.delete();
    cnFile.createNewFile();

    if (enFile.exists())
        enFile.delete();
    enFile.createNewFile();

答案 1 :(得分:1)

由于要删除文件(如果存在),因此只需删除文件而不检查文件是否存在并创建新文件。

videoFile.delete();
videoFile.createNewFile();

cnFile.delete();
cnFile.createNewFile();

enFile.delete();
enFile.createNewFile();

答案 2 :(得分:1)

您的if语句不是严格需要的,因为如果文件不存在,File.delete不会引发异常,而是返回false(似乎您对此不感兴趣)结果)。 并且遍历文件列表甚至可以进一步简化它:

File[] files = new File[]{videoFile, cnFile, enFile};
for(File f: files) {
    f.delete();
    f.createNewFile();
}

答案 3 :(得分:0)

您可以创建一个私有方法:

private void createFile(File file) {  // if not File, then whatever type you need
    if (!file.exists()) {
        file.createNewFile();
    } else {
        file.delete();
        file.createNewFile();
    }
}

然后多次调用:

try {

    createFile(videoFile);
    createFile(cnFile);
    createFile(enFile);

} catch (IOException e) {
    e.printStackTrace();
}