Как читать файл с помощью FileInputStream, совместимого со всеми ОС

У меня есть файл, и мне нужно прочитать его с помощью FileInputStream в java. Мне нужно указать путь, который должен быть доступен для чтения во всех ОС. Теперь я дал

(new FileInputStream("..\\config.properties"));

который является форматом, читаемым в Windows, но он не читается в Unix.

Есть ли общий для всех ОС способ.


person M.M.RAM KUMAR    schedule 10.12.2013    source источник
comment
я не знаю, поможет ли это http://stackoverflow.com/questions/3548775/platform-independent-paths-in-java   -  person insomniac    schedule 10.12.2013
comment
Обратитесь к этим уже отвеченным вопросам. stackoverflow.com/questions/17092260/ stackoverflow.com/questions/9953328/   -  person user1933888    schedule 10.12.2013


Ответы (2)


У вас есть два варианта:

  1. Для автономных классов вы можете использовать:

     new FileInputStream("../config.properties")
    
  2. Для классов в файле JAR вы можете использовать:

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

Это должно помочь.

person aryann    schedule 10.12.2013

да. Вместо

new FileInputStream("..\\config.properties")

Это должно работать везде

new FileInputStream("../config.properties")

Или вы могли бы использовать

новый FileInputStream (".." + java.io.File.separator + "config.properties")

person Elliott Frisch    schedule 10.12.2013
comment
Привет, Эллиотт, если я дам этот класс в банке, это сработает? - person M.M.RAM KUMAR; 10.12.2013
comment
Это не класс, это текстовый файл. Что ты спрашиваешь? - person Elliott Frisch; 10.12.2013
comment
config.properties - это текстовый файл. Это то, как вы получаете доступ к файлу в вашей файловой системе, а не как вы получаете доступ к файлу свойств в файле JAR. - person Elliott Frisch; 10.12.2013