자바 의 변환 흐름 InputStreamReader

10263 단어 자바
InputStreamReader 는 바이트 가 문자 로 통 하 는 다리 로 지정 한 charset 를 사용 하여 바 이 트 를 읽 고 문자 로 디 코딩 합 니 다.인 코딩 표를 지정 할 수 있다 는 것 이다.Output Stream Writer 는 문자 전향 바이트 입 니 다.
Output Stream Writer 는 지정 한 charset 를 사용 하여 스 트림 에 쓸 문 자 를 바이트 로 인 코딩 할 수 있 습 니 다.
Writer 부모 클래스 의 방법 은 모두 사용 할 수 있 습 니 다.구조 방법: OutputStreamWriter (OutputStream, 인 코딩 방식);사용 절차 1: OutputStream 대상 을 만 들 고 구조 방법 에서 바이트 출력 흐름 과 지정 한 인 코딩 표 이름 을 전달 합 니 다.2: OutputStream 대상 의 write 방법 을 사용 하여 문 자 를 버퍼 에 저장 합 니 다.3: OutputStreamWriter 대상 을 사용 하 는 방법 flush 새로 고침, 메모리 버퍼 에 있 는 바 이 트 를 파일 로 새로 고침 합 니 다.
public class OputSWriter {
     
	public static void main(String[] args) throws IOException, FileNotFoundException {
     
		OutputStreamWriter opsw = new OutputStreamWriter(new FileOutputStream("E:\\图片\\c.txt"),"GBK");//写入的字节指定编码格式
		opsw.write("你好");//把字符转换为字节,可以显示中文了。
		opsw.flush();
	}
}

InputStreamReader 에서 지정 한 문자 형식의 문 자 를 읽 습 니 다.
public class IputSReader {
     

	public static void main(String[] args) throws IOException, FileNotFoundException {
     
		// TODO Auto-generated method stub
		InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\图片\\c.txt"),"utf-8");//读取指定格式的字符
		int len = 0;
		while((len=isr.read())!=-1) {
     
			System.out.println((char)len);
		}
		isr.close();
	}
}

메모: 쓰 고 읽 으 면 쓰기 와 읽 는 인 코딩 형식 이 다 르 면 오류 가 발생 합 니 다.위 에 적 힌 것 처럼 GBK 형식 이지 만 읽 을 때 utf - 8 형식 을 사용 하면 읽 기 가 어 지 러 워 집 니 다.
그러나 우리 가 인 코딩 형식 을 바 꾸 려 면 먼저 그 를 읽 고 바이트 가 바 꾸 고 싶 은 인 코딩 형식 을 써 야 한다.예 를 들 어 GBK 형식 을 읽 고 utf - 8 형식 을 쓴다.
public class Exercise {
     

	public static void main(String[] args) throws IOException {
     
		// TODO Auto-generated method stub
		show();
	}
	public static void show() throws IOException, IOException {
     
		InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\图片\\c.txt"),"GBK");
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\\图片\\d.txt"),"UTF-8");
		int len = 0;
		while((len=isr.read())!=-1) {
     
			osw.write(len);
			System.out.println(len);//我们发现读入的是GBK格式,但是新的文件中写入的是utf8格式
		}
		isr.close();
		osw.close();
		System.out.println("over");
	}
}

좋은 웹페이지 즐겨찾기