I would like to merge the following .properties files into one. So for example I have structure:
IAS
├── default
│ ├── gateway.properties
│ └── pennytunnelservice.properties
└── FAT
├── gateway.properties
├── IAS-jer-1
│ └── gateway.properties
└── pennytunnelservice.properties
My goal is to have two merged files (in this example) pennytunnelservice.properties nad gateway.properties.
In default/gateway.properties is for example:
abc=$change.me
def=test
In FAT/gateway.properties is for example:
abc=123
ghi=234
In FAT/pennytunnelservice.properties is for example:
mno=text
In FAT/IAS-jer-1/gateway.properties is for example:
xyz=123
ghi=98
And the result should be two files with these rows:
pennytunnelservice.properties
mno=text
gateway.properties
abc=123
def=test
ghi=98
xyz=123
Do you have any idea how to do that?
UPDATED !!!
I have written something like this:
public static void main(String[] args) throws IOException {
String dirName = "/IAS";
File file = new File(dirName);
Map<String,Properties> files = new HashMap<>();
Files.walkFileTree(file.toPath(), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println(file);
Properties prop = new Properties();
FileInputStream input = new FileInputStream(file.toString());
prop.load(input);
files.put(file.getFileName().toString(), prop);
return FileVisitResult.CONTINUE;
}
});
And the result is
{pennytunnelservice.properties={mno=text}, gateway.properties={abc=123, ghi=234}}
The problem is that files are loaded in the wrong way/order:
IAS/default/pennytunnelservice.properties
IAS/default/gateway.properties
IAS/FAT/IAS-jer-1/gateway.properties
IAS/FAT/pennytunnelservice.properties
IAS/FAT/gateway.properties
It should be:
IAS/default/pennytunnelservice.properties
IAS/default/gateway.properties
IAS/FAT/pennytunnelservice.properties
IAS/FAT/gateway.properties
IAS/FAT/IAS-jer-1/gateway.properties