I need to convert text file to the String, which, finally, I should put as an input parameter (type InputStream) to IFile.create (Eclipse). Looking for the example or how to do that but still can not figure out...need your help!
just for testing, I did try to convert original text file to UTF-8 encoded with this code
FileInputStream fis = new FileInputStream(FilePath);
InputStreamReader isr = new InputStreamReader(fis);
Reader in = new BufferedReader(isr);
StringBuffer buffer = new StringBuffer();
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char)ch);
}
in.close();
FileOutputStream fos = new FileOutputStream(FilePath+".test.txt");
Writer out = new OutputStreamWriter(fos, "UTF8");
out.write(buffer.toString());
out.close();
but even thought the final *.test.txt file has UTF-8 encoding, the characters inside are corrupted.
You need to specify the encoding of the
InputStreamReader
using theCharset
parameter.This also works:
See also:
InputStreamReader(InputStream in, Charset cs)
Charset.forName(String charsetName)
SO search where I found all these links: https://stackoverflow.com/search?q=java+detect+encoding
You can get the default charset - which is comes from the system the JVM is running on - at runtime via
Charset.defaultCharset()
.