ちょっと変わったことがやりたかったんです。

やりたいことは以下の通り。

propertiesを使って、値を読み取る。
その値の分だけ、スペース文字列を表示させたい。
import java.util.Properties;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;

public class Main {
  public static void main(String[] args) {                                    

    Properties p = new Properties();                                          
    InputStream inStream = null;
    try {
      inStream = new BufferedInputStream(
          new FileInputStream("env.properties"));                             
      p.load(inStream);                                                       
    } catch(Exception e) {
      System.out.println(e.getMessage()); 
      e.printStackTrace();
      System.exit(1);
    } finally {                                                               
      if (inStream == null) {                                                 
        try {                                                                 
          inStream.close(); 
        } catch (Exception e) {                                               
          System.out.println(e.getMessage());                                 
          e.printStackTrace();                                                
          System.exit(1);                                                     
        } 
      }   
    }     
    String STR_LENGTH = p.getProperty("str_length");                          
    int length        = Integer.parseInt(STR_LENGTH);                         
    String str = String.format(String.format("%%%ds",length),' ');            
    System.out.println("-->"+str+"<--");

  }
}

env.properties

str_length=3

実行結果

[rdera]% javac Main.java
[rdera]% java Main
-->   <--

一応、やりたかったことは達成。


学んだこと

プロパティファイルから値を読み取るときに使用したストリームは閉じても閉じなくても良い。
今回のソースだとinStreamのこと。なんか気になるんで閉じた。
プロパティファイルから読み取れる値はString。
intとして使いたければ、読込んでから変換が必要。
formatの使い方。

気になること

    String str = String.format(String.format("%%%ds",length),' ');            

formatを2回使ってる。
なんか、賢いやり方がありそうな気配。