首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中目录的FileDescriptor

Java中目录的FileDescriptor
EN

Stack Overflow用户
提问于 2013-12-11 19:23:56
回答 3查看 1K关注 0票数 1

有没有像C一样在Java中打开目录流的方法?我需要一个打开的目录的FileDescriptor。实际上只有fd的编号。

我尝试在CRIU链接的帮助下用Java实现一个检查点/恢复功能。为此,我需要将RPC调用部署到CRIU服务。在那里,我必须提供一个已经打开的目录的FD的整数值,该目录将存储进程的图像文件。

提前谢谢你!

EN

回答 3

Stack Overflow用户

发布于 2013-12-11 19:37:04

中有没有像C一样打开目录流的方法?

不,没有。除非求助于本机代码。

如果您想在(纯) Java中“读取”一个目录,您可以使用以下方法之一来实现:

  • File.list() -以strings.
  • File.list(FilenameFilter) - ditto的形式提供目录条目的名称,但只有匹配的目录条目才是类似returned.
  • File.listFiles()的objects.
  • etcetera
  • Files.newDirectoryStream(Path),但是返回list() File会为目录中的条目提供Path对象的迭代器。

最后一个可能“接近”您试图实现的目标,但它不需要应用程序代码获得目录的文件描述符,也不需要应用程序在目录上执行低级“读取”。

票数 2
EN

Stack Overflow用户

发布于 2013-12-11 19:25:08

在Java中,您不需要FD。您所需要的只是一个对该文件的引用,您可以简单地使用File file = new File("PathToYourFile");获取该文件

要读/写,你需要在Java中使用Streams。您可以使用

代码语言:javascript
复制
    BufferedReader fileReader = new BufferedReader(new FileReader(new File("myFile.txt")));
    PrintWriter fileWriter = new PrintWriter(new FileWriter(new File("myFile.txt")));

Even目录是一个文件。您可以在文件对象上使用isDirectory()来检查它是目录还是文件。

票数 -1
EN

Stack Overflow用户

发布于 2013-12-11 19:25:32

代码语言:javascript
复制
private FileDescriptor openFile(String path)
        throws FileNotFoundException, IOException {
    File file = new File(path);
    FileOutputStream fos = new FileOutputStream(file);
    // remember th 'fos' reference somewhere for later closing it
    fos.write((new Date() + " Beginning of process...").getBytes());
    return fos.getFD();
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20517799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档