2

指定された入力ファイルを取るプログラムに取り組もうとしていますが、ファイルの内容から接頭辞を破棄in.propertiesして新しいファイルに再度書き出したいですout.propertiesprefix

つまり、入力ファイルの内容は次のようになります

prefix.sum.code.root=/compile/pkg

出力ファイルの内容は次のようになります

sum.code.root=/compile/pkg

これが私のコードです:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class Dummy {

public static void main(String args[])
{
    Properties prop =new Properties();

    try{
        //load a property file
        prop.load(new FileInputStream    ("C:\\Users\\user\\Desktop\\ant\\Filtering\\input.properties"));
        for (String key : prop.stringPropertyNames()){ 
            prop.remove(key);
        }
        prop.store(new FileOutputStream("C:\\Users\\user\\Desktop\\ant\\Filtering\\output.properties"), null);          
    }catch (IOException e)
    {
    e.printStackTrace();
    }
    }}

「KEY」の null 値が返され、このフィールドに新しい値を更新できません

4

1 に答える 1

1

のサブクラスと同様に、Properties.stringPropertyNamesとを使用してこれをかなり簡単に実行できるはずです。Hashtable.removePropertiesHashtable

final Properties properties = ...;
for (final String name : properties.stringPropertyNames()) {
  if (name.startsWith("prefix.")) {
    properties.setProperty(name.substring(6, name.length()), properties.remove(name));
  }
}
于 2012-08-08T13:56:17.633 に答える