String text;
try {
PrintStream pw2 = new PrintStream(new FileOutputStream("C:\\Users\\jadit\\Desktop\\ts.doc"));
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
text = br.readLine(); //Reading String
System.out.println(text);
pw2.print(text);
pw2.close();
isr.close();
br.close();
}
catch(Exception e) {
System.out.println(e);
}
int str;
try {
FileInputStream fr2 = new FileInputStream("C:\\Users\\jadit\\Desktop\\ts.doc");
BufferedInputStream br2 = new BufferedInputStream(fr2);
PrintStream pw1 = new PrintStream(System.out, true);
while ((str=br2.read()) >= 0)
pw1.println(" "+str);
fr2.close();
pw1.close();
br2.close();
}
catch(Exception e){}
輸出:差異在Java輸入輸出
run:
a b c d
a b c d
97
32
98
32
99
32
100
32
如果我想讀一些其他文件的內容說,t.txt在第二個try塊那麼它不執行或讀取文件t.txt的內容,但是當我正在讀取正在第一個嘗試塊中寫入的同一文件的內容時,它將在輸出中顯示如上所示的內容。所以即使流在第一次嘗試塊本身被關閉,並在下一個嘗試塊中被打開,爲什麼會發生?我們不能在同一個程序中的不同文件上工作嗎?
您的問題對我來說並不清楚,而且我也無法將輸出與您的實際Java代碼關聯起來。 –
要添加@TimBiegeleisen,我也不是很瞭解你想要什麼,但是'閱讀內容',內容是什麼?你正在讀它們作爲'int',並且正在這裏做一個空的捕獲。也許你會遇到一個你從未注意到的'Exception',因爲你的異常處理不會做任何事情? (我很肯定你是這樣做的) – SomeJavaGuy
@TimBiegeleisen - 實際上,我在netbeans上運行這個代碼,這是我得到的輸出。實際上,我有這個問題,我應該使用標準輸入在文件'a'中寫入一些內容,並打印另一個已經創建的文件'b'的內容。現在問題的第一部分是正常的,但在第二部分中,如果我正在嘗試讀取文件'b'的內容,那是不會發生的,而相反,如果正在讀取正在打印/執行的文件'a的內容。所以我卡住了。 –