자바 바이트 흐름 문자 흐름

1.텍스트 는 16 비트 부호 없 는 정수 로 문자 유 니 코드 인 코딩(두 바이트 인 코딩)입 니 다.
2.파일 시 byte byte...의 데이터 시퀀스.
3.텍스트 파일 은 텍스트(char)시퀀스 가 특정한 인 코딩 방안(utf-8,gbk)에 따라 byte 로 직렬 화 된 저장 결과 입 니 다.
4.문자 흐름:(reader Writer)  출력/입력 흐름
  문자 처리:한 번 에 한 문 자 를 처리 합 니 다.
InputStreamReader  파일(byte)흐름 을 텍스트(char)흐름 으로 해석 하고 인 코딩 에 따라 분석 합 니 다.
OutputStreamWriter  텍스트(char)를 파일(byte)로 흐 르 게 하고 인 코딩 에 따라 처리 합 니 다.
package cn.lanz.stream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class IsrAndOswDemo {
	public static void main(String[] args) throws IOException {
		
		FileInputStream in=new FileInputStream("e:\\javaio\\lanz.txt");
		
		InputStreamReader isr=new InputStreamReader(in);//     
		
		FileOutputStream out=new FileOutputStream("e:\\javaio\\lanzs.txt");
		OutputStreamWriter osw=new OutputStreamWriter(out, "utf-8");
		
	/*	int c;
		if((c=isr.read())!=-1){
			System.out.println((char)c);
		}*/
		
		char[] buffer=new char[8*1024];
		int a;
		while((a=isr.read(buffer,0,buffer.length))!=-1){
			String s=new String(buffer,0,a);
			System.out.println(s);
			osw.write(buffer, 0, a);
			osw.flush();
		}
		
		osw.close();
		out.close();
		isr.close();
		in.close();
	}
}
package cn.lanz.stream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class IsrAndOswDemo {
	public static void main(String[] args) throws IOException {
		
		FileInputStream in=new FileInputStream("e:\\javaio\\lanz.txt");
		
		InputStreamReader isr=new InputStreamReader(in);//     
	/*	int c;
		if((c=isr.read())!=-1){
			System.out.println((char)c);
		}*/
		
		char[] buffer=new char[8*1024];
		int a;
		while((a=isr.read(buffer,0,buffer.length))!=-1){
			String s=new String(buffer,0,a);
			System.out.println(s);
		}
		
		isr.close();
		in.close();
	}
}

5.FileReader   /  FileWriter
package cn.lanz.stream;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileRAndFileW {
	public static void main(String[] args) throws IOException {
		FileReader fr=new FileReader("e:\\javaio\\lanz.txt");//  
		
		FileWriter fw=new FileWriter("e:\\javaio\\lanzs.txt",true);//   ,    true,           (  ),          。
		
		char[] buffer=new char[2056];
		
		int c;
		while((c=fr.read(buffer, 0, buffer.length))!=-1){
			fw.write(buffer, 0, c);
			fw.flush();
		}
		
		fw.close();
		fr.close();
	}
}

6.문자 흐름 필터
 1.BufferedReader   ------readLine  한 줄 씩 읽 기
  2.BufferedWriter/PrintWriter  ---한 줄 을 쓰다
package cn.lanz.stream;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class BrAndBwOrPw {
	public static void main(String[] args) throws IOException {
		//         
		BufferedReader br=new BufferedReader(new InputStreamReader
				(new FileInputStream("e:\\javaio\\lanz.txt")));//  
		
		BufferedWriter bw=new BufferedWriter(new OutputStreamWriter
				(new FileOutputStream("e:\\javaio\\lanzs.txt")));//  
		
		
		//PrintWriter pw=new PrintWriter("e:\\javaio\\lanzs.txt");//  ,  
		
		String line;
		while((line=br.readLine())!=null){
			bw.write(line);
			//        
			bw.newLine();
			bw.flush();
			
//			pw.print(line);//  ln    
//			pw.flush();
		}
		bw.close();
		br.close();
	}
}

좋은 웹페이지 즐겨찾기