Java 如何在所有操作系统中使用兼容的FileInputStream读取文件

Java 如何在所有操作系统中使用兼容的FileInputStream读取文件,java,fileinputstream,Java,Fileinputstream,我有一个文件,我需要用java中的FileInputStream读取它。 我需要给出在所有操作系统中都应该可读的路径。 现在我已经放弃了 (new FileInputStream("..\\config.properties")); 这是一种windows可读格式 但这在Unix中是不可读的 所有操作系统是否都有通用的方法。是。而不是 new FileInputStream("..\\config.properties") 这应该适用于所有地方 new FileInputStream("..

我有一个文件,我需要用java中的FileInputStream读取它。 我需要给出在所有操作系统中都应该可读的路径。 现在我已经放弃了

(new FileInputStream("..\\config.properties"));
这是一种windows可读格式 但这在Unix中是不可读的

所有操作系统是否都有通用的方法。

是。而不是

new FileInputStream("..\\config.properties")
这应该适用于所有地方

new FileInputStream("../config.properties")
或者你可以用

新文件输入流(“..”+java.io.File.separator+“config.properties”)

是。而不是

new FileInputStream("..\\config.properties")
这应该适用于所有地方

new FileInputStream("../config.properties")
或者你可以用

新文件输入流(“..”+java.io.File.separator+“config.properties”)

您有两个选项:

  • 对于独立类,您可以使用:

     new FileInputStream("../config.properties")
    
    InputStream input = getClass().getResourceAsStream("../config.properties");
    
  • 对于JAR文件中的类,您可以使用:

     new FileInputStream("../config.properties")
    
    InputStream input = getClass().getResourceAsStream("../config.properties");
    
  • 这应该会有所帮助。

    您有两个选择:

  • 对于独立类,您可以使用:

     new FileInputStream("../config.properties")
    
    InputStream input = getClass().getResourceAsStream("../config.properties");
    
  • 对于JAR文件中的类,您可以使用:

     new FileInputStream("../config.properties")
    
    InputStream input = getClass().getResourceAsStream("../config.properties");
    

  • 这应该会有帮助。

    对于这些已经回答的问题,我不知道这是否有帮助。我不知道这对这些已经回答的问题是否有帮助。嗨,Elliott,如果我把这个类放在一个罐子里,这行吗?那不是一个类,它是一个文本文件。你在问什么?
    config.properties
    是一个文本文件。这是访问文件系统上的文件的方式,而不是访问JAR文件中的属性文件的方式。嗨,Elliott,如果我在JAR中提供这个类,这会起作用吗?那不是类,而是文本文件。你在问什么?
    config.properties
    是一个文本文件。这是访问文件系统上的文件的方式,而不是访问JAR文件中的属性文件的方式。