程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java字符流與字撙節差別與用法剖析

Java字符流與字撙節差別與用法剖析

編輯:關於JAVA

Java字符流與字撙節差別與用法剖析。本站提示廣大學習愛好者:(Java字符流與字撙節差別與用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是Java字符流與字撙節差別與用法剖析正文


本文實例講述了Java字符流與字撙節差別與用法。分享給年夜家供年夜家參考,詳細以下:

字撙節與字符流重要的差別是他們的的處置方法

流分類:

1.Java的字撙節

InputStream是一切字節輸出流的先人,而OutputStream是一切字節輸入流的先人。

2.Java的字符流

Reader是一切讀取字符串輸出流的先人,而writer是一切輸入字符串的先人。

InputStream,OutputStream,Reader,writer都是籠統類。所以不克不及直接new
字撙節是最根本的,一切的InputStream和OutputStream的子類都是,重要用在處置二進制數據,它是按字節來處置的
但現實中許多的數據是文本,又提出了字符流的概念,它是按虛擬機的encode來處置,也就是要停止字符集的轉化
這兩個之間經由過程 InputStreamReader,OutputStreamWriter來聯系關系,現實上是經由過程byte[]和String來聯系關系

在現實開辟中湧現的漢字成績現實上都是在字符流和字撙節之間轉化不同一而形成的

在從字撙節轉化為字符流時,現實上就是byte[]轉化為String時,

public String(byte bytes[], String charsetName)

有一個症結的參數字符集編碼,平日我們都省略了,那體系就用操作體系的lang
而在字符流轉化為字撙節時,現實上是String轉化為byte[]時,
byte[]    String.getBytes(String charsetName)
也是一樣的事理
至於java.io中還湧現了很多其他的流,按重要是為了進步機能和應用便利,

如:BufferedInputStream,PipedInputStream等

詳細完成

字撙節 FileInputStream FileOutputStream
字符流 FileReader FileWriter

字符流處置的單位為2個字節的Unicode字符,分離操作字符、字符數組或字符串,而字撙節處置單位為1個字節,操作字節和字節數組。所以字符流是由Java虛擬機將字節轉化為2個字節的Unicode字符為單元的字符而成的,所以它對多國說話支撐性比擬好!假如是音頻文件、圖片、歌曲,就用字撙節好點,假如是關系到中文(文本)的,用字符流好點.

一切文件的貯存是都是字節(byte)的貯存,在磁盤上保存的其實不是文件的字符而是先把字符編碼成字節,再貯存這些字節到磁盤。在讀取文件(特殊是文本文件)時,也是一個字節一個字節地讀取以構成字節序列.

字撙節可用於任何類型的對象,包含二進制對象,而字符流只能處置字符或許字符串; 2. 字撙節供給了處置任何類型的IO操作的功效,但它不克不及直接處置Unicode字符,而字符流便可以。

字撙節轉換成字符流可以用 InputSteamReader OutputStreamWriter
轉換成BufferdReader BufferedWriter 他們具有緩沖區
例如:讀取文件 從字撙節輸出到字符流輸出
界說一個字撙節:

FileInputStream fileInputStream = new FileInputStream("d:/text.txt");
// 界說一個指向D:/TEXT.TXT 的字撙節
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
//字撙節轉換成InputStreamReader
BufferedReader bufferedReader = new BufferedReader(inputSteamReader);
//InputStreamReader 轉換成帶緩存的bufferedReader

可以把讀出來的內容賦值給字符

String ss = new String();
String s;
while((s = bufferedReader.readLine())!=null){
    ss += s;
}
FileInputStream fileInputStream = new FileInputStream("d:/text.txt"); // 界說一個指向D:/TEXT.TXT 的字撙節   InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);  //字撙節轉換成InputStreamReader   BufferedReader bufferedReader = new BufferedReader(inputSteamReader);  //InputStreamReader 轉換成帶緩存的bufferedReader  可以把讀出來的內容賦值給字符  String ss = new String();  String s;  while((s = bufferedReader.readLine())!=null){ ss += s; }

例如:寫入文件 從字撙節輸入到字符流輸入

FileOutputStream fileOutputStream = new FileOutputStream("d:/text.txt");
//界說一個指向D:/TEXT.TXT文件
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(s);
bufferedWriter.close();
outputStreamWriter.close();
fileOutputStream.close();
FileOutputStream fileOutputStream = new FileOutputStream("d:/text.txt");  //界說一個指向D:/TEXT.TXT文件
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(s);
bufferedWriter.close();
outputStreamWriter.close();
fileOutputStream.close();

例程:

將字符串轉化為字撙節 #region  將字符串轉化為字撙節

/**/ ///  <summary>
/// 將字符串轉化為字撙節
///  </summary>
///  <param name="_Source"> 字串 </param>
///  <returns> 字撙節 </returns>
public  static  byte [] String2Bytes( string strSource)
{
   System.IO.MemoryStream  memoryStream = new  System.IO.MemoryStream();
   System.IO.BinaryWriter  binaryWriter = new  System.IO.BinaryWriter(memoryStream);
   binaryWriter.Write( strSource );
   byte []  buffer = memoryStream.GetBuffer();
   return buffer;
}
#endregion

將字撙節轉化為字符串 #region  將字撙節轉化為字符串

/**/ ///  <summary>
/// 將字撙節轉化為字符串
///  </summary>
///  <param name="bytData"> 字撙節 </param>
///  <returns> 字串 </returns>
public  static  string Bytes2String( byte [] bytData)
{
   // 字撙節->字符串
   System.IO.MemoryStream  memoryStream2 =  new  System.IO.MemoryStream(bytData);
   System.IO.BinaryReader  binaryReader =  new  System.IO.BinaryReader(memoryStream2);
   string  s2 = binaryReader.ReadString();
   return s2;
}
#endregion

願望本文所述對年夜家java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved