aspose file tools*
The moose likes Beginning Java and the fly likes FileWriter. From the API. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "FileWriter. From the API." Watch "FileWriter. From the API." New topic
Author

FileWriter. From the API.

Tim McMurry
Greenhorn

Joined: Oct 31, 2009
Posts: 22
Hi,

can someone help me understand or point me to resources I could read in order to understand the following line from the API description of the class Filewriter ?

"The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable."
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19696
    
  20

Character encoding. In short, it describes how bytes are converted into characters. The default character encoding is determined by your operating system, and it may not be the actual encoding of the file. If it isn't then FileWriter is not a good option.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41874
    
  63
On a more general level, it means that the FileWriter class abstracts away those two parameters (character encoding and buffer size) - it uses default values that your code can't change. Should you do need to change them, then using an OutputStreamWriter (for the encoding) and a BufferedWriter (for the buffer size) in conjunction with a FileOutputStream are called for. The javadocs of those other classes provide more information about what exactly they do.


Ping & DNS - my free Android networking tools app
Tim McMurry
Greenhorn

Joined: Oct 31, 2009
Posts: 22
Thank you for the answers.

I thought I had figured things out after getting your warning about FileWriter and reading the docs, but I am apparently still missing something.

I have a text-file which was likely created on a Windows machine. According to the "file" tool on my linux machine, its encoding is "ISO-8859".

I extract certain strings from this file and write those to a new file. I have done the following, where inFile is the File object for the input file,
and outFile is the File object for the output file.


I write to osw using


Now when I open outFile in a texteditor a questionmark appears for instance where there ought to be a character with an accent egu and checking the type of
outFile with "file" again, shows that it is ASCII despite having chosen "ISO-8859-1" in the OutputStreamWriter constructor .

Hints ?
Tim McMurry
Greenhorn

Joined: Oct 31, 2009
Posts: 22
Apologies for posing my last question. Hope you havent wasted too much time thinking about it.

This was for a term-project and we were giving code to load some data. On linux machines some bugs occured. This was caused by the provided code using FileWriter. The above code does fix this. I had overseen that the writer was reassigned after initialization apparently for the sole silly purpose of skipping the first line in the file !
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: FileWriter. From the API.