编程语言
首页 > 编程语言> > java-FileoutputStream FileNotFoundException

java-FileoutputStream FileNotFoundException

作者:互联网

我正在使用Java SE Eclipse.
据我所知,当不存在由参数命名的文件时,FileOutputStream构造函数将创建由参数命名的新文件.但是,随着过程的进行,我看到FileOutputStream使FileNotFoundException异常.我真的不知道为什么需要这个例外.我的知识有什么问题吗?

我的代码如下(使WorkBook写入文件.在此代码中,尽管没有文件“ data.xlsx”,但FileOutpuStream使文件“ data.xlsx”.

    public ExcelData() {
    try {
        fileIn = new FileInputStream("data.xlsx");
        try {
            wb = WorkbookFactory.create(fileIn);
            sheet1 = wb.getSheet(Constant.SHEET1_NAME);
            sheet2 = wb.getSheet(Constant.SHEET2_NAME);
        } catch (EncryptedDocumentException | InvalidFormatException | IOException e) {
            e.printStackTrace();
        } // if there is file, copy data into workbook
    } catch (FileNotFoundException e1) {
        initWb();
        try {
            fileOut = new FileOutputStream("data.xlsx");
            wb.write(fileOut);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } 

    } // if there is not file, create init workbook

} // ExcelData()

如果有什么奇怪的请让我知道,谢谢

解决方法:

如果文件不存在且无法创建(doc),它将抛出FileNotFoundException,但如果可以创建它,则将创建FileNotFoundException.为了确保您可能应该先测试文件是否存在,然后再创建FileOutputStream(如果不存在,请使用createNewFile()创建)

File yourFile = new File("score.txt");
if(!yourFile.exists()) {
    yourFile.createNewFile();
} 
FileOutputStream oFile = new FileOutputStream(yourFile, false); 

来自这里的答案:Java FileOutputStream Create File if not exists

标签:fileoutputstream,apache-poi,java
来源: https://codeday.me/bug/20191119/2034568.html