I am trying to write Arabic word in windows Notepad by buffered output stream in java and after writing the charset encoding for notepad become UTF-8 so it is obvious the default charset for writing file in java is UTF-8 but the wonder when I read it by buffered input stream , it is not read by UTF-8 encoding because when reading it the result is strange symbols
enter code here class writeFile extends BufferedOutputStream { public writeFile(OutpuStream out){ super(out); } public static void main(String arg[]) { writeFile out=new writeFile(new FileOutputStream(new File("path_String"))); out.write("مكتبة".getByte()); }} it is ok written as it is but when read :
enter code here class readFile extends BufferedInputStream { public readFile(InputStream In){ super(In); } public static void main(String arg[]) { readFile in=new readFile(new FileInputStream(new File("path_String"))); int c; while((c=in.read()!=-1) System.out.print((char)c); }} the result is not as in file as written before : ÙÙØªØ¨Ø©
so is this mean in writing java uses UTF-8 encoding and when in reading uses another encoding ?