Я создал программу на Java, которая будет обрабатывать файлы с помощью программы на C ++. Это часть кода, которая вызывает программу на C ++:
public static boolean buildPAKFile(String OSMFile){
log("Starting building PAK file for " + OSMFile + "...");
// get name of OSMFile
String[] OSMFileName = OSMFile.split("\\.");
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cat " + OSMFile + " | ../gosmore rebuild " + OSMFileName[0]);
/*
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}*/
int exitVal = pr.waitFor();
System.out.println("Exited with error code "+exitVal);
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
log("Done building PAK File for " + OSMFile);
return true;
}
Когда я раскомментирую часть, которая печатает поток ввода из программы на C ++, появляется бессмысленный текст. Как я могу сделать это правильно? Спасибо!
Добавлено:
Это пример выполнения команды:
cat ncr-sample.osm | ../gosmore rebuild ncr-sample.pak
Building ncr-sample.pak using style /usr/local/share/gosmore/elemstyles.xml...
../gosmore is in the public domain and comes without warranty
...
484 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
485 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
486 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
487 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
488 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
489 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
490 for (pairs = 0; pairs < PAIRS && s2grp < S2GROUP (0) + S2GROUPS; )
491 for (ndType *ndItr = ndBase; ndItr < ndBase + hashTable[bucketsMin1 + 1]; ndItr++)
492 qsort (&lseg[0], lseg.size () / 2, sizeof (lseg[0]) * 2, (int (*)(const void *, const void *))HalfSegCmp)
493 for (int i = 0; i < IDXGROUPS; i++)
Icon public.png not found
Icon public.png not found
Icon religion/synagogue.png not found
Icon religion/mosque.png not found
Icon rendering/landuse/cemetery.png not found
Icon wlan.png not found
Icon rendering/landuse/cemetery.png not found
../gosmore is in the public domain and comes without warranty