Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: Drzewo katalogów

Mam takie pytanie: w jaki sposób najlepiej uzyskać wcięcia w tekście zapisywanym do pliku?

Chodzi o to, że użytkownik podaje nazwę katalogu, program pobiera całą strukturę katalogów dół, a następnie zapisuje to wszystko do pliku tekstowego. Na razie mam coś takiego:


public void createTree(String s){

String str = s + " ";
if(fileList != null){
for(File f : fileList){

if(f.isDirectory()){

treeNode.add(str + "[" + f.getName() + "]->");
File[] z = f.listFiles();
FileTree f1 = new FileTree(f.getName());
f1.fileList = z;
f1.createTree(str);

}else{
treeNode.add(str + f.getName());

}

}
}
}


Zapisywanie do pliku robię za pomocą BufferedWriter. Rozwiązanie, które zrobiłam wydaje mi się.... hmm siermiężne, więc zastanawiam się jak tutaj najlepiej sformatować tekst.

konto usunięte

Temat: Drzewo katalogów

Olga Grabek:
(...)

Jest w Javie możliwość formatowania tekstu przy pomocy wyrażeń jakie były wykorzystywane w funkcji printf w języku C (i paru innych). W ten sposób zamiast pisać

 treeNode.add(str + "[" + f.getName() + "]->"); 


możesz napisać

 treeNode.add( String.format( "%s [%s]->", str, f.getName() ) ); 


Możesz też zastąpić "str", który jak rozumiem zawiera jedynie spacje i odpowiada za wcięcia, specjalnym wyrażeniem, które pozwala określić ilość znaków danego ciągu:

 treeNode.add( String.format( "%-10s [%s]->", "", f.getName() ) ); 


W ten sposób powinnaś dostać 10 spacji wcięcia. Jeśli zamiast 10 wstawisz zmienną, to będziesz mogła sobie regulować głębokość wcięcia:

 treeNode.add( String.format( "%-" + indent + "s [%s]->", "", f.getName() ) ); 
Grzegorz Hołdys edytował(a) ten post dnia 19.04.09 o godzinie 09:01
Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: Drzewo katalogów

Super. Dzięki za podpowiedź :)

Podobne tematy


Następna dyskusja:

Drzewo zależności klas




Wyślij zaproszenie do