Java中IO部分(四)

Java中IO部分(四)
字符流
字符输出流Writer类
字符流适合处理中文,Writer类是字符输出流的处理类,这个类定义如下:public abstract class Writer entends Object implements Appendable,Closeable,Flushable,多了Appendable接口。
在Writer类里面提供了 writer()方法,接收的类型都是char型的,
1.输出内容: public void write(String str)throws IOException
如果要操作文件肯定使用FileWriter 子类。
实例:通过Writer 类实现输出。

package com.se.core;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

public class TestDemo {
	public static void main(String[] args) throws Exception {
	File file=new File("d:"+File.separator+"abc"+File.separator+"hell.txt");//通过File类定义路径
	if(!file.getParentFile().exists())
	{file.getParentFile().mkdirs();}
	Writer out=new FileWriter(file);
	String ss="我们是祖国的花朵";
	out.write(ss);	
	out.close();
			}
		}

字符输入流Reader类
Reader也是一个抽象类,如果文件读取,用FileReader子类进行实现,在Reader中没有一个方法直接读取字符串的方法,这时候只能字符数组进行读取操作。
实例:通过文件读取数据

package com.se.core;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
public class TestDemo {
	public static void main(String[] args) throws Exception {
	File file=new File("d:"+File.separator+"abc"+File.separator+"hell.txt");//通过File类定义路径
	if(file.exists()){
		Reader in=new FileReader(file);
		char c[]=new char[1024];
		int length=in.read(c);
		System.out.println(new String(c,0,length));
		in.close();
		
	}
			}
		}


注:字符流主要用于处理中文
字节流和字符流的区别
从代码的形式上看,字符流和字节流区别不了,一般优先考虑字节流,在处理中文时需要用字符流,因为所有的字符都需要都需要通过内存缓存来进行处理,既然读数据需要缓存处理,写数据也需要,在用字符流没有进行刷新的,数据可能在缓存中

package com.se.core;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

public class TestDemo {
	public static void main(String[] args) throws Exception {
	File file=new File("d:"+File.separator+"abc"+File.separator+"hell.txt");//通过File类定义路径
	if(!file.getParentFile().exists())
	{file.getParentFile().mkdirs();}
	Writer out=new FileWriter(file);
	String ss="我们是祖国的花朵11";
	out.write(ss);	
	out.flush();//写上此语句表示强制清空缓存,所有内容都输出
			}
		}

所有以后再处理IO操作时,如果处理的是音乐、图片、文字都可以使用 字节流,而在处理中文的时候才会优先考虑字符流

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值