读取使用虚拟文件系统JIMFS创建的文件

时间:2016-04-26 05:30:24

标签: java java-io virtualfilesystem jimfs

我使用JIMFS创建了一个VFS。

FileSystem virtualFS = Jimfs.newFileSystem(Configuration.unix());
Path virtualPath = virtualFS.getPath("resources/virtualFolder");
Files.createDirectories(virtualPath);
Path refData = virtualPath.resolve("refData.csv");
System.out.println(refData);

Files.write(refData, ImmutableList.of(sData),StandardCharsets.UTF_8);

我试图在另一个方法中读取文件(refData.csv)(Path传递给另一个方法)。

我到目前为止所尝试的是:

1: new FileDataModel(new FileInputStream(Files.lines(refData)));

2: new FileDataModel((File) Files.lines(refData));

3: new FileDataModel(new File(refData));

不幸的是,到目前为止,这些都不起作用。我明白了,我正在将默认FS与Virtual FS混合使用。

Error: Exception in thread "main" java.lang.UnsupportedOperationException

如何访问创建的文件?。

1 个答案:

答案 0 :(得分:1)

FileFileInputStream除了默认文件系统之外什么都不起作用。您需要的是FileDataModel构造函数的一个版本,它采用Path或普通版InputStreamInputStream可以获得Path使用Files.newInputStream(Path))。

(顺便说一下,Files.lines会返回Stream,而不是File,所以我不确定你在那里做什么。)