爲什麼我在寫入文件中獲取額外字符以獲取以下代碼?如果我使用writeBytes(String)
比下面的代碼是工作文件。那麼dos.writeChars()
方法有什麼問題?java.io.File在寫入文件時獲取額外字符
File fileObj = new File("student.txt");
try {
// writing into file
FileOutputStream fos = new FileOutputStream(fileObj);
String msg = "This is student file";
DataOutputStream dos = new DataOutputStream(fos);
dos.writeChars(msg);
//reading from file
FileInputStream fis = new FileInputStream(fileObj);
DataInputStream dis = new DataInputStream(fis);
System.out.println(dis.readLine());
for (int i = 0; ((i = dis.read()) != -1); i++) {
System.out.println(i);
}
fos.close();
dos.close();
} catch (FileNotFoundException e) {
System.err.println("File not found!");
} catch (IOException e) {
e.printStackTrace();
}
您期待什麼輸出?你得到什麼輸出? –
我期待「這是學生檔案」,但是我在每個字符後都會得到一些額外的字符,比如T [] h [] i [] s [] ...)。 – Vishrant
對於初學者,在打開輸入流之前關閉輸出流。 –