Java IO學習筆記(四)打印流。本站提示廣大學習愛好者:(Java IO學習筆記(四)打印流)文章只能為提供參考,不一定能成為您想要的結果。以下是Java IO學習筆記(四)打印流正文
1、只要輸入流才有打印流:PrintWriter和PrintStream辨別針對字符和字節,提供了重載的print,Println辦法用於多種數據類型的輸入。PrintWriter和PrintStream操作不會拋出異常,數據沒打印出來也不會拋異常。
2、System.out.print(Object object)調用的是Object實體類的toString()辦法。
3、PrintWriter和PrintStream有自動的flush功用,不需求手動調用flush辦法。*這裡必需強調一點:PrintWriter的自動flush功用,只要在new PrintWriter對象的時分調用PrintWriter(Writer out, boolean autoFlush),並將 autoFlush設置為true才會自動flush,否則不會自動flush,必需手動printWriter.flush()才干成功打印數據。
另外,PrintWriter辦法不只可以套在Writer字符輸入流的裡面,還可以套在字節輸入流裡面,PrintWriter的結構辦法如下:
PrintStream的詳細結構辦法如下圖:
4、System.out.println()中,java.lang.System.out中的out就是PrintStream類型的。
練習小順序1:
package test.io.print;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
public class PrintStreamTest {
public static void main(String args[]){
PrintStream ps = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream("E:/技術學習/java/test/Socket/test6.txt");
ps = new PrintStream(fos);
System.
setOut(ps);//不再是控制台輸入,而是輸入到FileOutputStream所指向的文件中。
for(int i=0; i<3000; i++){
System.
out.print(i+" ");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally{
try {
if(ps != null){
ps.close();
}
if(fos != null){
fos.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}
練習小順序2:從控制台輸出內容,並將控制台輸出的內容打印到文件中,相似於記日志
package test.io.print;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Date;
public class PrintWriterTest {
public static void main(String args[]){
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String s = null;
PrintWriter pw = null;
try {
//PrintWriter結構辦法將能否自動flush設置成了true,即可自動flush,假如沒設置true,則必需手動調用flush辦法,才干把內容打印到文件中
pw = new PrintWriter(new FileWriter("E:/技術學習/java/test/Socket/test7.txt",true),true);
while((s=bf.readLine()) != null){
if(s.equals("exit")){
break;
}
System.out.println(s);
pw.println("---------------------------------------");
pw.println(s);
//pw.flush();
}
pw.println("-------------"+new Date()+"------------");
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(bf != null){
bf.close();
}
if(pw != null){
pw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}