Java基础IO学习二(字符输入输出流Reader与Writer的使用以及转换流的使用)

博客主要介绍了字符输入流、字符输出流,以及如何将字节输出流转换为字符输出流,聚焦于信息技术中流处理相关内容。

字符输入流

package com.cvicse.io.demo;

import java.io.File;
import java.io.FileReader;
import java.io.Reader;

/**
 * Reader 字符输入流   表示向程序中输入
 * 全部数据读取
 * @author 13169
 *
 */
public class ReaderDemo01 {
	
	public static void main(String[] args) throws Exception {
		//1.定义输出文件的路径
		File file = new File("E:"+File.separator+"IODemo"+File.separator+"my.txt");
		//如果文件存在
		if(file.exists()) {
			//2.使用字符输入流读取
			Reader reader = new FileReader(file);
			char[] data = new char[1024];
			//3.进行数据读取
			reader.read(data);
			System.out.println(new String(data));
			//4.关闭输入流
			reader.close();
		}
		/**
		 * 字节流与字符流的区别
		 * 1.字节流直接与终端进行数据交互,而字符流需要将数据经过缓冲区才可以与终端交互
		 * 2.在使用OutputStream进行输出时,即使最后没有关闭输出流,内容也可以正常输出,
		 * 而使用Writer进行输出时,没有关闭输出流,则表示在缓冲区中的数据不会被强制性的清空,所以就不会输出数据。
		 * 3.开发之中,对于字节数据处理较多,例如:图片,音乐,电影,文字。如果处理中文数据,建议使用字符流,其他情况建议使用字节流。
		 */
	}

}

字符输出流

package com.cvicse.io.demo;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

/**
 * 文件输出流 FileInputStream 表示向程序中输入
 * 全部数据读取
 * @author 13169
 *
 */
public class WriterDemo01 {

	public static void main(String[] args) throws Exception {
		//1.定义输出文件的路径
		File file = new File("E:"+File.separator+"IODemo"+File.separator+"my.txt");
		//2.创建文件目录
		if(!file.getParentFile().exists()) {  //如果文件目录不存在
			file.getParentFile().mkdirs();  //创建目录
		}
		//3.使用Writer 和其子类进行实例化
		Writer out = new FileWriter(file);
		String str = "Hello World !!!";
		//4.内容输出
		out.write(str);
		//5.关闭输出流
		//强制清空缓冲区out.flush(); 
		out.close();
		
	}

}

字节输出流转换为字符输出流

package com.cvicse.io.demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

/**
 * 转换流   字节输出流转换为字符输出流
 * @author 13169
 *
 */
public class InputStreamReaderDemo {

	public static void main(String[] args) throws Exception {
		File file = new File("E:"+File.separator+"IODemo"+File.separator+"my.txt");
		if(!file.getParentFile().exists()) {
			file.getParentFile().mkdirs();
		}
		//字节输出流
		OutputStream output = new FileOutputStream(file);
		//将output传递给字符输出流
		Writer writer = new OutputStreamWriter(output);
		writer.write("你好,世界!!!");
		//关闭字符输出流
		writer.close();

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值