이 기사에서는 Java 캐릭터 스트림과 바이트 스트림의 차이점과 사용에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
바이트 스트림과 문자 스트림의 주요 차이점은 처리 방법입니다.
스트림 분류 :
1. Java의 바이트 스트림
InputStream은 모든 바이트 입력 스트림의 조상이며 출력 스트림은 모든 바이트 출력 스트림의 조상입니다.
2. Java 캐릭터 스트림
독자는 모든 읽기 문자열 입력 스트림의 조상이며, 작가는 모든 출력 문자열의 조상입니다.
InputStream, OutputStream, Reader 및 Writer는 모두 추상 클래스입니다. 그래서 당신은 새로운 것만 할 수 없습니다
바이트 스트림이 가장 기본적입니다. 입력 스트림 및 출력 스트림의 모든 서브 클래스는 주로 이진 데이터를 처리하는 데 사용됩니다. 바이트로 처리되지만 실제로는 많은 데이터가 텍스트입니다. 캐릭터 스트림의 개념이 제안됩니다. 이들은 가상 머신의 인코딩, 즉 문자 세트를 변환하기 위해 처리됩니다. 두 사람은 InputStreamReader 및 OutputStreamWriter를 통해 관련되며 실제로 BYTE [] 및 String을 통해 관련됩니다.
실제 발전에서 발생하는 중국어 문제는 실제로 캐릭터 스트림과 바이트 스트림 사이의 일관되지 않은 전환으로 인해 발생합니다.
바이트 스트림에서 문자 스트림으로 변환 할 때 실제로 바이트 []가 문자열로 변환 될 때입니다.
public String (byte bytes [], String charsetname)
주요 매개 변수 문자 세트 인코딩이있어 일반적으로 생략하므로 시스템은 운영 체제 Lang을 사용합니다.
문자 스트림이 바이트 스트림으로 변환되면 실제로 문자열이 바이트 []로 변환 될 때입니다.
바이트 [] string.getBytes (String charsetname)
java.io의 다른 많은 스트림과 마찬가지로 성능을 향상시키고 편의성을 사용하는 것도 마찬가지입니다.
예를 들어 : BufferedInputStream, PipedInputStream 등
특정 구현
바이트 스트림 FileInputStream FileOutputStream
캐릭터 스트리밍 Filereader filewriter
문자 스트림 처리 단위는 2 바이트 유니 코드 문자이며, 각각 문자, 문자 배열 또는 문자열을 작동하는 반면 바이트 스트림 처리의 단위는 1 바이트이며 바이트 및 바이트 어레이를 작동합니다. 따라서 문자 스트림은 바이트를 2 바이트의 유니 코드 문자로 변환하는 Java 가상 머신으로 구성되므로 여러 언어를 더지지합니다! 오디오 파일, 그림 또는 노래 인 경우 바이트 스트리밍을 사용하고 중국어 (텍스트)와 관련된 경우 문자 스트리밍을 사용하십시오.
모든 파일은 바이트로 저장됩니다. 디스크에 유지되는 것은 파일의 문자가 아니지만 문자는 먼저 바이트로 인코딩 한 다음 바이트가 디스크에 저장됩니다. 파일 (특히 텍스트 파일)을 읽을 때 바이트 바이트를 읽고 바이트 시퀀스를 형성합니다.
바이트 스트림은 이진 객체를 포함한 모든 유형의 객체에 사용할 수 있지만 문자 스트림은 문자 나 문자열 만 처리 할 수 있습니다. 2. 바이트 스트림은 모든 유형의 IO 작업을 처리하는 기능을 제공하지만 유니 코드 문자를 직접 처리 할 수는 없지만 문자 스트림은 수행 할 수 있습니다.
BYTE 스트림은 inputSteamReader outputStreamWriter를 사용하여 문자 스트림으로 변환 할 수 있습니다.
BufferDreader BufferedWriter로 변환 버퍼가 있습니다. 예를 들어 : 바이트 스트림 입력에서 문자 스트림 입력에서 파일을 읽습니다. 바이트 스트림을 정의하십시오.
fileInputStream fileInputStream = new FileInputStream ( "d :/rext.txt"); // d :/retxt.txt inputStreamReader inputStreamReader = new inputStreamReader (fileInputStream); // inputStreamReaderBufferedReader로 변환하는 바이트 스트림을 정의합니다. bufferedReader (inputSteamReader); // inputStreamReader는 캐시를 사용하여 BufferedReader로 변환합니다
읽기 내용을 문자에 할당 할 수 있습니다
String ss = new String (); String s; while ((s = bufferedReader.Readline ())! = null) {ss += s;} fileInputStream fileInputStream = new FileInputStream ( "d :/rext.txt"); // d :/retxt.txt inputStreamReader inputStreamReader = new inputStreamReader (fileInputStream)로 향하는 바이트 스트림을 정의합니다. // BYTE 스트림을 InputStreamReader로 변환 BufferedReader BufferedReader = New BufferedReader (InputSteamReader); // inputStreamReader는 캐시가있는 BufferedReader로 변환됩니다. 문자 문자열 ss = new String ()에 읽기 내용을 할당 할 수 있습니다. 문자열 s; while ((s = bufferedReader.Readline ())! = null) {ss += s; }예를 들어 : 바이트 스트림에서 문자 스트림 출력으로 파일을 작성합니다.
fileoutputStream fileoutputStream = 새 FileOutputStream ( "d :/rext.txt"); // d :/rext.txt outputStreamWriter = outputStreamWriter (fileOutStreamWriter); bufferedWriter = new로 포인팅하는 파일을 정의합니다. bufferedWriter (outputStreamWriter); bufferedWriter.write (s); bufferedWriter.close (); outputStreamWriter.close (); fileoutputStream fileoutputStream = new FileOutputStream ( "d :/rext.txt"); // d : /text.txt outputStreamWriter outputStreamWriter = new outputStreamWriter (fileoutputStream); bufferedWriter bufferedWriter (outputStreamWriter); bufferedWriter.write (s); bufferedWriter (); clostRestreamwriter (); close (); close ();
루틴:
문자열 변환 바이트 스트림으로 변환#영역 줄을 바이트 스트림으로 변환
/**//// <summary> //// 바이트 스트림으로 문자열을 변환 /// </summary> /// <param name = "_ 소스"> 문자열 </param> // <returns> byte stream </returns> public static byte [] string2bytes (string strsource) {system.io.memorystream memorystream = new System.io.morystream (); System.io.binarywriter binarywriter = new System.io.binaryWriter (MemoryStream); binarywriter.write (strsource); 바이트 [] buffer = memorystream.getBuffer (); 리턴 버퍼;}#endregion바이트 스트림을 문자열로 변환 #region 바이트 스트림을 문자열로 변환
/**//// <summary> //// byte 스트림을 문자열로 변환 /// </summary> /// <param name = "bytdata"> byte streams </param> /// <returns> string> public static string bytes2string (byte [] bytdata) {// byte stream-> strem system.io.mormorystream 2 = system.io.memorystream (bytdata); System.io.binaryReader BinaryReader = new System.io.binaryReader (MemoryStream2); 문자열 s2 = binaryReader.ReadString (); 반환 s2;}#endregion이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.