以下程序應打印String
「矮矮胖胖的人坐在牆上,\ n矮矮胖胖的人摔倒了。」到一個文件並將其輸入。使用FileInputStream進行文件輸入無法正常工作
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
public class ByteIO {
/**
* @param args
*/
public static void main(String[] args) {
String output = "Humpty Dumpty sat on a wall,\n Humpty Dumpty had a great fall.";
System.out.println("Output String : " + output);
try(PrintStream out = new PrintStream("F:\\Test.txt")) {
out.println(output);
} catch(FileNotFoundException e) {
e.printStackTrace();
}
String input = "";
try(FileInputStream in = new FileInputStream("F:\\Test.txt")) {
while(in.read() != -1)
input += (char)in.read();
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
System.out.println("Input String : " + input);
}
}
但是,我從FileInputStream
得到了String
是 「upyDmt一個nawl,upyDmt一個RA人?」!另外,當我打開文件「Test.txt」時,我發現輸出String
已經變成「矮胖矮胖坐在牆上,矮矮胖胖的人倒下了。」在一行中。 \n
去哪了?
\ n在那裏,但也許你的編輯器不會顯示它。關於你的輸入:你的循環被打破,因爲它只提供每個第二個字符。 – Ingo
您應該在寫入和讀取之間關閉文件。 –
@JavaNewbie總是接受答案,當你得到你的解決方案。 – Ravi