Java——IO流(下)

目录

 

阐述

编码表的概念及常见的编码表

String中编码和解码的问题

转换流中的编码和解码

字符缓冲区流的概述和使用

课后作业


阐述

编码表的概念及常见的编码表

编码表是字符及其对应的数据组成的一张表。

常见的编码表有

ASCII:美国标准信息交换码表,用一个字节的7位表示数据

ISO-8859-1:欧洲码表,用一个字节的8位表示数据,兼容ASCII

GB2312:中文码表,兼容ASCII

GBK:中文码表升级版,融合了更多的中文文字符号,兼容ASCII

UTF-8:万国码,是一种长度可变的字符编码,用1-3个字节表示数据,兼容ASCII。用在网页上,可以统一简体或繁体中文和其他语言的显示。

String中编码和解码的问题

编码就是把字符转换成字节,编码的方法为 字符串.getByte(指定编码) ,返回字节数组。

解码是把字节转换成字符,解码和编码的方式要一致,通过指定的charset解码字节数组,构造新的String对象,格式为 new String(字节数组,指定编码)。

系统默认编码是GBK。

转换流

转换流其实就是个字符流,根据默认或指定的编码把字节流数据转换成字符流。系统默认编码是GBK。

输入:new InputStreamReader(字节输入流, 指定编码)

输出:new OutputStreamWriter(字节输出流, 指定编码)

字符缓冲区流的概述和使用

字符缓冲区流用来缓冲字符流,从而实现字符的高效读写。

new BufferReader(字符输入流)

new BufferWriter(字符输出流)

特殊方法:newLine(),作用是换行

课后作业

项目根路径下有text.txt文件,内容如下:
    我爱CSDN
    123456
利用IO流的知识读取text.txt文件的内容反转后写入text.txt文件中
    654321
    NDSC爱我

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;

public class BufferIO {
	public static void main(String[] args) throws IOException {
		
		ArrayList<String> lineList = new ArrayList<String>();
		
		//为了解决中文乱码问题,创建InputStreamReader关联text.txt文件并指定编码,作为创建字符流的参数
		InputStreamReader isr = new InputStreamReader(new FileInputStream("text.txt"), "UTF-8");
		BufferedReader br = new BufferedReader(isr);
		
		String line;
		while ((line = br.readLine()) != null) {
			lineList.add(line);			
		}
		
		br.close();
		
		//为了解决中文乱码问题,创建OutputStreamWriter关联text.txt文件并指定编码,作为创建字符流的参数
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("text.txt"), "UTF-8");
		BufferedWriter bw = new BufferedWriter(osw);
		
		for(int i=0; i<lineList.size(); i++) {
			StringBuilder sb = new StringBuilder(lineList.get(i));
			String reverseLine = sb.reverse().toString();
			bw.write(reverseLine);
			if(i != lineList.size()-1) {				
				bw.newLine();
			}
		}
		bw.close();
		
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40995238/article/details/112094698