Java?I/O流之打印流詳細(xì)使用方法教程
打印流
打印流基本使用
打印流:
作用:打印流可以實(shí)現(xiàn)更方便、更高效的打印數(shù)據(jù)到文件中去。打印流一般是指:PrintStream,PrintWriter兩個(gè)類。
可以實(shí)現(xiàn)打印什么數(shù)據(jù)就是什么數(shù)據(jù),例如打印整數(shù)97寫出去就是97,打印boolean的true,寫出去就是true。
打印流PrintStream構(gòu)造器如下:
構(gòu)造器 | 說(shuō)明 |
---|---|
PrintStream(OutputStream os) | 打印流直接通向字節(jié)輸出流管道 |
PrintStream(File f) | 打印流直接通向文件對(duì)象 |
PrintStream(String filepath) | 打印流直接通向文件路徑 |
示例代碼
public static void main(String[] args) throws Exception { // 方式一: 打印流通向字節(jié)輸出流管道 PrintStream ps1 = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 方式二: 打印流通向文件對(duì)象 PrintStream ps2 = new PrintStream(new File("/Users/chenyq/Documents/test.txt")); // 方式三: 打印流通向文件路徑 PrintStream ps3 = new PrintStream("/Users/chenyq/Documents/test.txt"); }
打印流PrintStream方法如下:
方法 | 說(shuō)明 |
---|---|
print(Xxx xx) | 打印任意類型的數(shù)據(jù)出去(不換行) |
println(Xxx xx) | 打印任意類型的數(shù)據(jù)出去(換行) |
演示代碼
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 打印流方法 ps.println(97); ps.println("aaa"); ps.println(123); ps.println('我'); ps.println(true); // 關(guān)閉流 ps.close(); }
上面代碼打印到文件中的內(nèi)容如下:
打印流PrintWrite構(gòu)造器如下
構(gòu)造器 | 說(shuō)明 |
---|---|
PrintWriter(OutputStream os) | 打印流直接通向字節(jié)輸出流管道 |
PrintWriter (Writer w) | 打印流直接通向字符輸出流管道 |
PrintWriter (File f) | 打印流直接通向文件對(duì)象 |
PrintWriter (String filepath) | 打印流直接通向文件路徑 |
打印流PrintStream方法:
方法 | 說(shuō)明 |
---|---|
print(Xxx xx) | 打印任意類型的數(shù)據(jù)出去(換行) |
println(Xxx xx) | 打印任意類型的數(shù)據(jù)出去(不換行) |
演示代碼:
PrintWrite和PrintPrintStream在打印的使用上并無(wú)區(qū)別
public static void main(String[] args) throws Exception { PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 打印流方法 pw.println(97); pw.println("aaa"); pw.println(123); pw.println('我'); pw.println(false); // 關(guān)閉流 pw.close(); }
既然PrintStream和PrintWrite在打印上沒(méi)有區(qū)別, 那這兩個(gè)類的區(qū)別在哪里?
打印數(shù)據(jù)功能上是一模一樣的,都是使用方便,性能高效(核心優(yōu)勢(shì))
PrintStream繼承自字節(jié)輸出流OutputStream,支持寫字節(jié)數(shù)據(jù)的方法。
PrintWriter繼承自字符輸出流Writer,支持寫字符數(shù)據(jù)出去。
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // PrintStream寫字節(jié)數(shù)據(jù) ps.write("我愛(ài)學(xué)習(xí)".getBytes()); }
public static void main(String[] args) throws Exception { PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // PrintWrite寫字符數(shù)據(jù) pw.write("我愛(ài)學(xué)習(xí)"); }
但是我們一般使用打印流, 都是打印數(shù)據(jù)到文件中去;
使用打印流我們基本不會(huì)用來(lái)寫數(shù)據(jù), 因?yàn)閷憯?shù)據(jù)我們直接使用字符輸出流和字節(jié)輸出流更好
使用打印流的小細(xì)節(jié), 我們可以發(fā)現(xiàn), 打印流默認(rèn)也是覆蓋管道, 打印的數(shù)據(jù)會(huì)覆蓋原數(shù)據(jù)
如果我們想要打印數(shù)據(jù)為追加數(shù)據(jù), 我們要在低級(jí)管道中開啟追加模式, 打印流的過(guò)早其中沒(méi)有提供追加數(shù)據(jù)的構(gòu)造器
public static void main(String[] args) throws Exception { // 在原始字符輸出流開啟追加模式 PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt", true)); }
輸出語(yǔ)句重定向
輸出語(yǔ)句重定向(了解)
屬于打印流的一種應(yīng)用,可以把輸出語(yǔ)句
System.out.println();
的打印位置改到文件當(dāng)中。例如: 在項(xiàng)目的開發(fā)階段我們是在控制臺(tái)打印調(diào)試的, 我們希望項(xiàng)目上線后將輸出語(yǔ)句打印到文件當(dāng)中
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream("/Users/chenyq/Documents/test.txt"); // 改變輸出語(yǔ)句的位置(重定向), 將輸出語(yǔ)句輸出到文件當(dāng)中 System.setOut(ps); System.out.println("aaa"); System.out.println(97); System.out.println(123); System.out.println('我'); }
總結(jié)
到此這篇關(guān)于Java IO流打印流詳細(xì)使用的文章就介紹到這了,更多相關(guān)Java IO流打印流使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Java實(shí)現(xiàn)簡(jiǎn)單ATM機(jī)功能
這篇文章主要為大家詳細(xì)介紹了用Java實(shí)現(xiàn)簡(jiǎn)單ATM機(jī)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Java EasyExcel實(shí)現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式
EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具,下面我們就來(lái)學(xué)習(xí)一下EasyExcel如何實(shí)現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式吧2023-11-11基于feign傳參MultipartFile問(wèn)題解決
這篇文章主要介紹了基于feign傳參MultipartFile問(wèn)題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03淺談線性表的原理及簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇淺談線性表的原理及簡(jiǎn)單實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06springboot線程池監(jiān)控的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了springboot線程池監(jiān)控的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Spring切面優(yōu)先級(jí)與基于xml的AOP實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Spring切面的優(yōu)先級(jí)與基于xml的AOP的詳細(xì)步驟,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11Mybatis Plus代碼生成器(時(shí)間管理大師)
這篇文章主要介紹了Mybatis Plus代碼生成器(時(shí)間管理大師)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07必知必會(huì)的SpringBoot實(shí)現(xiàn)熱部署兩種方式
這篇文章主要為大家介紹了必知必會(huì)的SpringBoot實(shí)現(xiàn)熱部署兩種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04