【问题标题】:how to find the path of file created using FileOutputStream如何找到使用 FileOutputStream 创建的文件的路径
【发布时间】:2015-12-17 02:34:08
【问题描述】:

我使用 FileOutputStream 创建了一个文件,它是一个 excel 文件(使用 HSSF Liberary)

FileOutputStream fileOut = new FileOutputStream(text+".xls");

然后我在我的 excel 文件(工作簿)中写下我需要的内容,然后关闭文件

workbook.write(fileOut);
fileOut.flush();
fileOut.close();

关闭它后,我需要向用户显示文件的路径,(我知道它在我的应用程序的文件夹中创建,但我仍然需要向用户显示它,可能通过 joption/message 框)

我试过这个:

String absolutePath = fileOut.getAbsolutePath();
JOptionPane.showMessageDialog(null, absolutePath);

但它显示错误,并说它找不到方法“getAbsolutePath”。我该怎么办 ?无论如何我可以得到这条路吗?

【问题讨论】:

  • 您是否尝试在关闭 fileOut 对象之前获取 fileOut.getAbsolutePath()?
  • new File(text+".xls") 那么你可以使用File的所有属性,比如getAbsolutePath
  • @YassinHH 是的,不幸的是它有同样的错误。
  • @YassinHH 我 99.9% 确定 FileOutputStream 没有名为 getAbsolutePath 的方法,由 OP 的错误 “找不到方法” 确定
  • @MadProgrammer,我知道它适用于我在应用程序的另一部分使用的文件。但是 HSSF 库需要使用 FileOutputStream 创建文件。

标签: java file path fileoutputstream


【解决方案1】:

您可以更改代码以使用文件作为中介。

File myFile = new File(text + ".xls");
FileOutputStream fileOut = new FileOutputStream(myFile);

然后就得到那个路径:

String absolutePath = myFile.getAbsolutePath();

完成后确保关闭流:

fileOut.close();

不过,理想情况下,您不应该只在恰好设置了 Java 路径的地方创建文件。您可能应该重新考虑这一点,而是询问用户他们要将文件保存在哪里。

【讨论】:

  • 非常感谢,现在可以使用了。这是你第二次用你惊人的答案拯救我:D
  • 我添加了选择路径的功能,但我仍然必须显示它。再次感谢
【解决方案2】:

使用new File(text+".xls").getAbsolutePath()。 FileOutputStream 不允许访问底层文件。

你应该养成阅读the javadoc 的习惯,而不是尝试随机的方法。然后您会看到哪些方法存在,哪些方法不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多