FileInputStream 和FileOutputStream相对路径问题

在此写下FileInputStream和FileOutputStream的相对路径注意事项


我也是昨天花费很长时间才弄懂的,记得在上学期弄懂过一会的,不久就忘了,现在在此记录,分享给大家。

该类获取相对路径,是从src文件夹开始的,注意,是从scr文件夹开始的。

例如我要读写online2.properties文件,想通过相对路径获取。
在这里插入图片描述

需要这样写相对路径:

FileInputStream fileInputStream   = new FileInputStream("src/qdu/edu/team/util/online2.properties");
FileOutputStream fileOutputStream = new FileOutputStream("src/qdu/edu/team/util/online2.properties", true);//true表示追加打开

从src文件夹开始,/包名,一直到要进行读写的文件。实际上,如果只写文件名,那么就会在项目文件夹下查找该文件,请看下面的代码:

FileOutputStream fileOutputStream = new FileOutputStream("online2.properties", true);

刚开始我这样写,还以为并没有成功写入文件呢,后来才发现是在项目文件夹下写入的文件。
在这里插入图片描述

// 例如当前类类名是PropertyTest
PropertyTest.class.getResourceAsStream("online.properties") // 可以获得与当前类在同一个包中的文件路径

大体就是这些,弄懂才发现很简单的。如果大家觉得这篇博客有用,记得点赞收藏一下啦!

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Java 中,可以使用 Apache POI 库来读取和写入 Excel 文件。如果要使用相对路径来访问 Excel 文件,可以使用以下代码: ```java String workingDirectory = System.getProperty("user.dir"); String filePath = workingDirectory + File.separator + "data" + File.separator + "test.xlsx"; File file = new File(filePath); try (FileInputStream inputStream = new FileInputStream(file)) { // 使用 POI 库读取 Excel 文件 Workbook workbook = WorkbookFactory.create(inputStream); Sheet sheet = workbook.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); System.out.println(cell.getStringCellValue()); } catch (IOException e) { e.printStackTrace(); } ``` 这里假设 Excel 文件存放在当前工作目录的 data 目录下,并且文件名为 test.xlsx。可以通过 `System.getProperty("user.dir")` 获取当前工作目录的路径,然后拼接相对路径来访问 Excel 文件。在读取完成后,需要关闭输入流。 如果要写入 Excel 文件,可以使用以下代码: ```java String workingDirectory = System.getProperty("user.dir"); String filePath = workingDirectory + File.separator + "data" + File.separator + "test.xlsx"; File file = new File(filePath); try (FileOutputStream outputStream = new FileOutputStream(file)) { // 使用 POI 库创建 Excel 文件 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello, World!"); workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } ``` 这里同样假设 Excel 文件存放在当前工作目录的 data 目录下,并且文件名为 test.xlsx。在写入完成后,需要关闭输出流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值