JAVA通幽(三)IO流

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/83117051

前言

      本章讲解IO流的相关知识

基础知识

1.IO流的概念

IO流,即输入输出流(input/output)大千世界,存在各种各样的流,比如人流,车流等等。IO流可以形象的比喻为我们读书是将书本上的文字读到大脑中,而写字则是将大脑中的想法写到书本上,这实质上就是IO流。换到java中,就是程序与数据源之间的文件,数据库,内存之间的交互。java.io包中提供了常用的IO流接口及实现类。

2. 字节流与字符流

  • 字节流:通俗的讲,就是计算机能够听懂的语言流,即0101001之类的二进制数字集合。
  • 字符流:我们每个国家的语言不一样,如美国用英语,中国用汉语等等,这种语言流就是字符流。

由于存在各个国家不同的字符流,翻译为字节流相当的困难,所以国际上引入了字符集的概念,以此来进行翻译:

如:ASCII、ISO8859-1、GB2312、GBK、GB18030、Unicode(UTF-8、UTF-16)等等

其中UTF-8编码方式为国际通用,包含大量字符的解释,推荐使用该编码。

如果一个编码方式的文件使用另外一种编码方式打开的话,那么将大概率发生乱码

实例:字符串与字节数组转换

package com.jwang.test;

import java.io.UnsupportedEncodingException;

/**
 * @author jwang
 *
 */
public class Test{
	public static void main(String[] args) throws UnsupportedEncodingException{
		
		String str1 = "中国";
		//将字符串以GBK编码的方式转为字节数组
		byte [] bytes = str1.getBytes("GBK");
		System.out.println(bytes.length);
		
		//将字节数组以GBK编码的方式转化为字符串
		String str2 = new String(bytes, "GBK");
		System.out.println(str2);
	}
	
}

3.四大抽象类

我们知道,字符流对于处理纯文本(纯中文,纯汉字文档)等处理效率高,但对于音频、视频、word等无能为力,这时候就需要最最基本的字节流进行处理了,java中为我们提供了四大抽象类处理。

字符流:Reader(字符输入流)、Writer(字符输出流)

字节流:InputStream(字节输入流)、OutputStream(字节输出流)   -->字节流为通用流

4.基本操作步骤

选择源-->选择流-->选择操作方式-->释放资源

这相当于一个搬家的操作步骤:选择房源-->选择搬家公司-->大卡车、小面包...-->给搬家公司钱让他走人

实例:文件读取

我在java项目的根路径建立了一个test.txt文本文件,里面写入“我爱中国”四个字,此刻写博客的我颇有感概,我们伟大的祖国强大起来了!!!闲话少说,先看例子:

实例:文件写入

同样的,我们将我爱中国四个字写入一个文件之中,这个文件我命名为target.txt

实例:纯文本文件拷贝(将以上两个例子合二为一)

大家也看到了,我这里只是列举了简单的几个流,更多的比如节点流,处理流,学有余力的同学可以去深入研究,博主因为最近工作比较忙,所以后续的内容有空再深入理解。 

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/83117051