java IO流

说到java IO流,我们用的最多的就是文件的输入流和输出流。那么,FileInputStream就是从文件中读取数据的流,FileOutputStream就是往文件中写数据的流。判断文件是否读到结尾用read()==-1来判断。

当然,也分为字节输入输出流和字符输入输出流。字符输入输出流与字节输入输出流有相同的功能,但传送数据的方式不一样,字节流以字节为单位传送数据,可以使任何类型的数据,例如文本、音频、视频、图片等。字符流以字符为单位传送数据,只能传送文本类型的数据。使用字符输入输出流的好处是,当读取中文时不会出现乱码问题,而使用字节输入输出流时,却不能保证这一点。

今天我不说字节流和字符流,因为感觉都是常用的,不会轻易忘记。今天讲三种流:字节字符转换流、内存操作流、打印流

一.字节字符转换流

java.io.InputStreamReader;
java.io.OutputStreamWriter;

preview

二.内存操作流

定义:除了文件之外,IO操作也可以发生在内存中,发生在内存中的操作流称为内存流。

文件流的操作里面一定会产生一个文件数据

那么,我现在就是需要进行IO处理,但是又不希望产生文件,这种情况下就可以使用内存作为操作终端。

简单写一下对文件流和内存操作流的理解:

1、 以文件操作为例,是以文件作为终端的

(1)读取的时候:程序利用InputStream从文件中读取
(2)输出的时候:程序利用OutputStream输出,输出到文件

2、以内存操作为例,以内存作为终端 
(1)程序通过InputStream把内容给内存
(2)程序要想从内存中取出来可以通过OutputStream把内容从内存中读取出来

package SocketIO;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class ByteArrayDemo {

	public static void main(String[] args) throws IOException {
		String str = "这是内存操作流";
		ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes()); //将内容传入内存
		ByteArrayOutputStream out = new  ByteArrayOutputStream();//把内容从内存输出
		int temp = 0;
		while((temp=in.read())!=-1){
			out.write(temp);
		}
		System.out.println(out.toString());
		in.close();
		out.close();
	}

}

结果:

三、打印流

打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流PrintWriter。打印流提供了非常方便的打印功能,可以打印任何类型的数据信息,例如:小数,整数,字符串。

package SocketIO;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;

public class PrintDemo {

	public static void main(String[] args) {
		File file = new File("G:\\test.txt");
		if(!file.exists()){
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		PrintWriter pw = null;
		try {
			pw = new PrintWriter(new FileOutputStream(file));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		int a = 11;
		pw.println("你好:");
		pw.printf("欢迎来学习打印流%d", a);
		pw.flush();
		pw.close();
	}

}

打印流好处:

通过定义的构造方法可以发现,直接接收OutputStream类的实例。与OutputStream相比起来,PrintStream可以更方便的输出数据,相当于把OutputStream类重新包装了一下,使之输出更方便。

结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值