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