You need an InputStreamReader, which knows that the data from the FileInputStream must be interpreted with the UTF-8 charset.
Here is an example. I have omitted the closing of the resources for brevity.
FileInputStream input = new FileInputStream(file);
InputStreamReader reader = new InputStreamReader(input, "utf-8");
FileOutputStream output = new FileOutputStream(destinationFile);
OutputStreamWriter writer = new OutputStreamWriter(output, "Windows-1250");
int read = reader.read();
while (read != -1)
{
writer.write(read);
read = reader.read();
}
And another thing: In your while loop you have two calls to input.read, but you call output.write() only once. This means you only write half of the bytes which you have read.