Naime - nakon što sam snimio neku mapu kojom sam se kretao - potrebno je da tu mapu snimim u file... Pri tom koristim ove dve klase iz naslova.
Code:
FileOutputStream pathPointsStream = null;
PrintWriter pointsPrintWriter = null;
try
{
deleteFile(getString(R.string.geoPathFileName));
pathPointsStream = this.openFileOutput(getString(R.string.geoPathFileName), Context.MODE_PRIVATE);
pointsPrintWriter = new PrintWriter (pathPointsStream);
pointsPrintWriter.print(pathString); // može i write - rezultat ispadne isti
Toast.makeText(this, R.string.saveSuccess, Toast.LENGTH_SHORT).show();
} catch (Exception e)
{
Toast.makeText(this, R.string.saveFailed, Toast.LENGTH_SHORT).show();
}
finally//...
FileOutputStream pathPointsStream = null;
PrintWriter pointsPrintWriter = null;
try
{
deleteFile(getString(R.string.geoPathFileName));
pathPointsStream = this.openFileOutput(getString(R.string.geoPathFileName), Context.MODE_PRIVATE);
pointsPrintWriter = new PrintWriter (pathPointsStream);
pointsPrintWriter.print(pathString); // može i write - rezultat ispadne isti
Toast.makeText(this, R.string.saveSuccess, Toast.LENGTH_SHORT).show();
} catch (Exception e)
{
Toast.makeText(this, R.string.saveFailed, Toast.LENGTH_SHORT).show();
}
finally//...
String pathString je string koji sadrži kordinate koje treba da snimim u određenom formatu - u mom slučaju npr. "35296018,-120657031;35296106,-120656661;35297438,-120658463;35296948,-120659751;" i to sam debugovao i sa tim je sve u redu. E sad problem je što mi kreira file sa imenom definisanim u ovoj string referenci (R.string.geoPathFileName) - walkabout.dat - ali je file prazan tj. veličine 0 byte. E sad - takodje - try sekcija se izvrši do kraja - tj. izađe mi ovaj toast da je file uspješno snimljen.
Čitam dokumentaciju već nekoliko dana i zapeo sam totalno - nikako ne mogu da prokljuvim u čemu je greška. Probao sam čak i sa komandama flash na FileOutputStreamu poslije snimanja - iako je to implementirano samo kod buferovanih streamova i ovdje nije - i svašta još nešto - ali ništa ne pomaže... Sa obzirom da printwriter ne prijavljuje IO error - pokušao sam i sa čekiranjem flaga za tu grešku sa metodom checkError - ali i to prijavljuje false...
U čemu je problem?
P.S. Kao i prošli put - našao sam rešenje - ovaj put na StockOwerflow - naime izgleda da printwriter piše tek prilikom zatvaranja a u finally bloku sam zatvarao samo outputstream, ne i printwriter... Sada kada sam dodao close() metod sve je u redu...
[Ovu poruku je menjao Stijak dana 22.03.2012. u 21:25 GMT+1]