• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

BufferedReader -> BufferedWriter - not writing whole file

 
Greenhorn
Posts: 4
IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I have a simple code to change dots to commas in a specific lines of a file, writing copy of a file with corrections. Basically it works fine, but I have unfortunately a weird problem. BufferedWriter doesn't write whole destination file. It ends between 99-100% of whole file (all files are 5.2-5.3 MB of size) right in the middle of a line. No exceptions.

I don't have any idea what to do with it, so I'm welcome to any suggestions - even to change BufferedReader/BufferedWriter to something more appropriate in this situation. I also have to notice that I use BufferedReader to read those source files in another part of code, I'm writing their contents to search engine index and I have seen 100% of files content loaded there (by looking for text in last parts of files), so there's probably no problem with BufferedReader.

source file part:

SNS dawała nie formalne poparcie rządowi za sprawą szefa partii Ludovita Cernaka. SNS nie wchodząc w skład oficjalnej rządowej koalicji zażądała od obozu rządzącego uregulowania sprawy i podpisania oficjalnej koalicji, takie same żądania wysunęła lewicowa SDL. Partia Cernaka weszła w skłąd rządu i objęła cztery resorty - lider otrzymał tekę ministra ekonomii. W 1994 roku prezydentem został Michal Kovac który miał nienajlepsze stosunki z premierem Vladimira Meclarem. Skutkiem tego było votum nieufności dla rządu ale opozycja która przejęła władzę nie potrafiła się dogadać między sobą i w tym samym roku doszło do kolejnych przeddterminowych wyborów.

[...and about 150 more lines of text to the end]



destination file end:

SNS dawała nie formalne poparcie rządowi za sprawą szefa partii Ludovita Cernaka. SNS nie wchodząc w skład oficjalnej rządowej koalicji zażądała od obozu rządzącego uregulowania sprawy i podpisania oficjalnej koalicji, takie same żądania wysunęła lewicowa SDL. Partia Cernaka weszła w skłąd rządu i objęła cztery resorty - lider otrzymał tekę min



Here's whole source code (but I think that problem lays not in code, but in using BufferedReader / BufferedWriter for such files).


Here's HEX output of part where BufferedWriter stops to write file:
 
Ranch Foreman
Posts: 3269
20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Have you tried calling the close() method on the fileToWriter, once you're done with it? That could very well be the problem. The BufferedWriter is probably saving your output in a buffer, and it never gets the signal that you're done. I recommend calling close() inside a finally block to ensure it happens regardless of any other errors that may occur.
 
Pio Jac
Greenhorn
Posts: 4
IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, it has done its work. I'm always forgetting about closing such things. Thank you for your help!
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!