2016-02-28 2 views
0

Я новичок в Java и пытаюсь изучить класс Properties. Я придумал код ниже. Я хотел напечатать «ключи» и «значения», хранящиеся в переменной свойств p2, используя разные методы. Однако кодПочему Properties.list (PrintWriter out) ничего не печатает?

PrintWriter pw1 = new PrintWriter(System.out); 
p2.list(pw1); 

Кажется, что ничего не печатают. Почему это происходит? Может кто-нибудь, пожалуйста, помогите мне? Заранее благодарю за любую помощь!

Properties p1 = new Properties(); 

try (OutputStream os1 = new FileOutputStream("whateverAmericaFile2.txt")){ 
    p1.setProperty("1", "one"); 
    p1.setProperty("2", "two"); 
    p1.setProperty("3", "three"); 
    p1.store(os1, "comment"); 
} catch(IOException e){ 
    e.printStackTrace(); 
} 

Properties p2 = new Properties(); 
try (InputStream is1 = new FileInputStream("whateverAmericaFile2.txt")){ 
    p2.load(is1); 
    System.out.println(p2.getProperty("2")); 
} catch (IOException e){ 
    e.printStackTrace(); 
} 

System.out.println("before PrintWriter"); 

PrintWriter pw1 = new PrintWriter(System.out); 
p2.list(pw1); 


System.out.println("After PrintWriter, before Enumeration "); 

Enumeration<Object> eo1 = p2.elements(); 
while (eo1.hasMoreElements()){ 
    System.out.println(eo1.nextElement()); 
} 

System.out.println("after Enumeration"); 

}

ответ

1

Вы должны вызвать pw1.flush() после p2.list(pw1) для того, чтобы написать кэшированные текст в консоли.

Смежные вопросы