使用 Java 7 NIO 从类路径读取文件
为此,我已经用谷歌搜索了很长一段时间,但所有的结果都指向Java 7 NIO之前的解决方案。我使用NIO的东西从文件系统上的特定位置读取文件,它比以前容易得多()。现在,我想读取打包在我的 WAR 和类路径中的文件。我们目前使用类似于以下内容的代码来执行此操作:Files.readAllBytes(path)
Input inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
/* iterate through the input stream to get all the bytes (no way to reliably find the size of the
* file behind the inputStream (see http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#available()))
*/
int byteInt = -1;
try
{
byteInt = inputStream.read();
while (byteInt != -1)
{
byteStream.write(byteInt);
byteInt = inputStream.read();
}
byteArray = byteStream.toByteArray();
inputStream.close();
return byteArray;
}
catch (IOException e)
{
//...
}
虽然这很有效,但我希望有一种更简单/更好的方法来使用Java 7中的NIO内容来做到这一点。我想我需要得到一个在类路径上表示此路径的 Path 对象,但我不确定如何做到这一点。
我很抱歉,如果这是一些超级容易的事情。我只是想不通。感谢您的帮助。