代码之家  ›  专栏  ›  技术社区  ›  jshen

Java相当于Ruby的文件?

  •  0
  • jshen  · 技术社区  · 16 年前

    在Ruby中,我经常使用 File.dirname(__FILE__) 打开配置文件等。对于那些不了解Ruby的人,这将给出调用它的文件在文件系统中的位置。这允许我使用数据和配置文件打包库,并使用相对路径打开这些文件。

    Java的等价物是什么?如果有一个数据文件我想用jar打包,我如何从jar中的Java代码中打开该数据文件?

    4 回复  |  直到 16 年前
        1
  •  7
  •   erickson    16 年前

    Java中的等效API是 getResourceAsStream . 这将打开一个相对于调用它的类的JAR中存储的文件的流。

    有一些变体,例如 getResource ,返回一个URL,或 ClassLoader 在JAR文件中使用绝对路径。

        2
  •  1
  •   Andrew Hare    16 年前

    请看 Java Applications and the "Current Directory" :

    在Java中,使用文件对象来 系统两个用于 文件对象采用“父对象” 指定父路径的参数 其前缀为 文件本身来创建完整的 文件的抽象路径。你做什么 是,使用路径创建一个文件对象 然后创建所有文件对象 将该文件对象用作父对象。 瞧,一个当前目录。

    Reading and Writing a Properties File :

    // Read properties file.
    Properties properties = new Properties();
    try {
        properties.load(new FileInputStream("filename.properties"));
    } catch (IOException e) {
    }
    
    // Write properties file.
    try {
        properties.store(new FileOutputStream("filename.properties"), null);
    } catch (IOException e) {
    }
    
        3
  •  0
  •   cd1    16 年前

    如果只指定文件名,JVM将在启动应用程序的同一目录(不一定是应用程序所在的同一目录)中查找该文件。

        4
  •  0
  •   Bill K    16 年前