【Java基础】IO流(1) —— 简介
【Java基础】IO流(2) —— 字符流
【Java基础】IO流(3) —— 字节流
【Java基础】IO流(4) —— 转换流、打印流
【Java基础】IO流(5) —— 序列流、内存流
【Java基础】IO流(6) —— 随机访问文件流、数据流
转换流
InputStreamReader 是字节输入流到字符输入流的桥
OutputStreamWriter 是字节输出流到字符输出流的桥
构造方法
- InputStreamReader(OutputStream out)
创建一个使用默认字符编码的转换输入流
InputStreamReader(OutputStream out, String charsetName)
创建一个使用命名字符集的转换输入流
方法
//定义标准的键盘输入
InputStream ins=System.in;
//把字节输入流转为字符输入流
InputStreamReader isr=new InputStreamReader(ins);
//为了提高效率,可以使用BufferedReader
BufferedReader br=new BufferedReader(isr);
//定义标准的键盘输出
PrintStream ps=System.out;
//把字节输出流转为字符输出流
OutputStreamWriter osw=new OutputStreamWriter(ps);
//为了提高效率,可以使用BufferedWriter
BufferedWriter bw=new BufferedWriter(osw);
String line=null;
while ((line=br.readLine())!=null){
if ("886".equals(line))
break;
bw.write(line);
bw.newLine();
bw.flush();
//System.out.println(line);
}
br.close();
bw.close();
public static void reads() throws IOException{
InputStreamReader isr=new InputStreamReader(new FileInputStream("UTF-8.txt"),"UTF-8");
//GBK编码中一个汉字占两个字节,UTF-8中一个汉字占三个字节
char[] arr=new char[2];
int num=isr.read(arr);
System.out.println(new String(arr,0,num));//你好
isr.close();
}
public static void writes() throws IOException{
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("UTF-8.txt"),"UTF-8");
osw.write("你好");
osw.close();
}
打印流
PrintStream:字节打印流
继承了OutputStream,具备了字节输出流的基本功能,特有打印功能
- 可以操纵File类型的文件
- 可以操纵String类型的文件
- PrintStream(OutputStream out) 可以操作字节输出流对象
PrintWriter:字符打印流
继承了Writer,具备了Writer的基本功能,特有打印功能
- 可以操纵File类型的文件
- 可以操纵String类型的文件
- PrintWriter(OutputStream out) 可以操作字节输出流对象
- PrintWriter(Writer out) 可以操作字符流输出对象