欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PrintStream和PrintWriter的區(qū)別簡介

 更新時間:2018年01月09日 09:51:21   作者:御風(fēng)逍遙  
這篇文章主要介紹了PrintStream和PrintWriter的區(qū)別簡介,具有一定借鑒價值,需要的朋友可以參考下

PrintStream和PrintWriter的API幾乎相同,都能輸出各種形式的數(shù)據(jù),構(gòu)造方法也幾乎相同

PrintWriter多了個接受Writer參數(shù)

API比較:

那么,它們的區(qū)別究竟在哪里?來自stackflow

主要意思就是,2個類的功能基本相同,PrintStream能做的PrintWriter也都能實現(xiàn),并且PrintWriter的功能更為強大。但是由于PrintWriter出現(xiàn)的比較晚,較早的System.out使用的是PrintStream來實現(xiàn)的,所以為了兼容就沒有廢棄PrintStream。

2個類最大的差別是,PrintStream在輸出字符,將字符轉(zhuǎn)換為字節(jié)時采用的是系統(tǒng)默認(rèn)的編碼格式,這樣當(dāng)數(shù)據(jù)傳輸另一個平臺,而另一個平臺使用另外一個編碼格式解碼時就會出現(xiàn)問題,存在不可控因素。而PrintWriter可以在傳入Writer時可由程序員指定字符轉(zhuǎn)換為字節(jié)時的編碼格式,這樣兼容性和可控性會更好。

下面這個程式顯示了PrintStream與PrintWriter兩個物件在處理相同輸出目的時的作法,程式將會在熒幕上顯示 "簡體中文" 四個字元:

StreamWriterDemo.java  
package onlyfun.caterpillar;
import java.io.*;
public class StreamWriterDemo  
{
	public static void main(String[] args)  {
		try  {
			byte[] sim = {(byte)0xbc, (byte)0xf2, // 簡  
			(byte)0xcc, (byte)0xe5, // 體  
			(byte)0xd6, (byte)0xd0, // 中  
			(byte)0xce, (byte)0xc4
		}
		;
		// 文  
		InputStreamReader inputStreamReader = new InputStreamReader(new ByteArrayInputStream(sim), "GB2312");
		PrintWriter printWriter =new PrintWriter(new OutputStreamWriter(System.out, "GB2312"));
		PrintStream printStream =new PrintStream(System.out, true, "GB2312");
		int in;
		while((in = inputStreamReader.read()) != -1)  {
			printWriter.println((char)in);
			printStream.println((char)in);
		}
		inputStreamReader.close();
		printWriter.close();
		printStream.close();
	}
	catch(ArrayIndexOutOfBoundsException e)  {
		e.printStackTrace();
	}
	catch(IOException e) {
		e.printStackTrace();
	}
}
}

總結(jié)

以上就是本文關(guān)于PrintStream和PrintWriter的區(qū)別簡介的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • springboot中@RestController注解實現(xiàn)

    springboot中@RestController注解實現(xiàn)

    在JavaWeb開發(fā)中,Spring框架及其組件SpringMVC因高效和強大功能而廣受歡迎,@RestController注解是SpringMVC中的重要組成部分,下面就來介紹一下,感興趣的可以了解一下
    2024-09-09
  • Java中l(wèi)ock和tryLock及l(fā)ockInterruptibly的區(qū)別

    Java中l(wèi)ock和tryLock及l(fā)ockInterruptibly的區(qū)別

    這篇文章主要介紹了Java中l(wèi)ock和tryLock及l(fā)ockInterruptibly的區(qū)別,文章介紹詳細(xì),具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • JAVA定義變量與輸出詳解

    JAVA定義變量與輸出詳解

    這篇文章主要介紹了JAVA定義變量與輸出詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • spring-boot整合dubbo:Spring-boot-dubbo-starter

    spring-boot整合dubbo:Spring-boot-dubbo-starter

    這篇文章主要介紹了spring-boot整合dubbo:Spring-boot-dubbo-starter的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的示例

    MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的示例

    本文主要介紹了MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Spring Boot 排除某個類加載注入IOC的操作

    Spring Boot 排除某個類加載注入IOC的操作

    這篇文章主要介紹了Spring Boot 排除某個類加載注入IOC的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一文搞懂String的intern()方法

    一文搞懂String的intern()方法

    這篇文章主要給大家介紹String的intern()方法,文中有詳細(xì)的代碼示例,感興趣的小伙伴讓我們一起來看看這究竟是個什么玩意
    2023-06-06
  • SpringBoot項目創(chuàng)建使用+配置文件+日志文件詳解

    SpringBoot項目創(chuàng)建使用+配置文件+日志文件詳解

    Spring的出現(xiàn)是為了簡化 Java 程序開發(fā),而 SpringBoot 的出現(xiàn)是為了簡化 Spring 程序開發(fā),這篇文章主要介紹了SpringBoot項目創(chuàng)建使用+配置文件+日志文件,需要的朋友可以參考下
    2023-02-02
  • Spring中byName和byType的區(qū)別及說明

    Spring中byName和byType的區(qū)別及說明

    這篇文章主要介紹了Spring中byName和byType的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 淺談選擇結(jié)構(gòu)if語句和switch語句的區(qū)別

    淺談選擇結(jié)構(gòu)if語句和switch語句的區(qū)別

    下面小編就為大家?guī)硪黄獪\談選擇結(jié)構(gòu)if語句和switch語句的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07

最新評論