gpt4 book ai didi

java - 只需指定文件名即可读取不同目录中的文件(通过资源文件夹)

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:00 27 4
gpt4 key购买 nike

我正在尝试实现一个简单的解决方法来读取资源目录中的文件

我的文件夹结构如下:

src 
|
|------test
| |
| -----com.tester.stackoverflow (package name)
| |
| ----BufferedExample.java
|------resources
| | -----com.tester.stackoverflow (package name)
| ----Testing.txt

我正在尝试读取名为“Testing.txt”的文件

我有一个通用文件实用程序,它是读取文件的完全不同的包。 (代码是scala)

package com.tester.utility

object FileHelper
{
def read(file: File) : Array[Byte] =
{
val inputStream = new FileInputStream(file)
try
{
val buffer = ListBuffer[Byte]()
var bytes = inputStream.read()
while (bytes != -1)
{
buffer.append(bytes.byteValue)
bytes = inputStream.read()
}
buffer.toArray
}
catch
{
case ex: Exception =>
{
ex.printStackTrace
throw ex
}
}
finally
{
inputStream.close
}
}
}

BufferedExample 应该从具有相同包的资源文件夹中读取文件Testing.txt。因此,我在上面的代码中传递文件对象。但我无法直接从 BufferedExample.java 找到testing.txt 文件。

我真的不想以绝对方式指定文件路径。 (仅传递文件名)。

谢谢!!!

最佳答案

如果资源目录已添加到您的类路径中(例如在 Eclipse 或 pom.xml 中的项目定义中),那么您可以使用 getResourceAsStream 而不是 new FileInputStream()
如果您还想从当前类获取包名称,这也是可行的,但有点复杂:this.getClass().getPackage().toString()BufferedExample.class.getPackage().toString()
然后您可以在 getResourceAsStream 之前将包名称附加到文件名。

关于java - 只需指定文件名即可读取不同目录中的文件(通过资源文件夹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com