java入门之IO流-字符流

该博客主要介绍Java中的字符流,字符流按字符单位读写,适用于文本文件。详细阐述了字符输入流FileReader和字符输出流FileWriter,包括它们的顶级父类、子类情况、常用构造器、读取和写入方法,并给出了相关案例,如字符读取和文件拷贝。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


字符流

它是按照字符为单位进行读和写,一般适用于传输文本文件

1.字符输入流(FileReader)

顶级父类:java.io.Reader
按照读取的数据源类型不同,分为若干个子类
最常用的读取文件:FileReader
常用构造器:
在这里插入图片描述
常用的读取方法:
在这里插入图片描述
案例:

import java.io.FileReader;
public class TestFileReader {
	public static void main(String[] args) throws Exception {
		
//		1创建字符输入流对象
		FileReader   fr=new  FileReader("C:\\Users\\Administrator\\Desktop\\1.txt");

一个一个字符读取数据

//		int  i=fr.read();
//		System.out.println((char)i);

有多少读多少

//		int i=fr.read();
//		while(i!=-1) {
//			System.out.print((char)i);
//			i=fr.read();
//		}
	
//		char[]  c=new  char[10];
//		int i=fr.read(c);
//		while(i!=-1) {
//			System.out.print(new  String(c,0,i));
//			i=fr.read(c);
//		}

		char[]  c=new  char[10];
		int i=fr.read(c,1,7);
		while(i!=-1) {
			System.out.print(new  String(c,1,i));
			i=fr.read(c,1,7);
		}

3、关闭流
fr.close();
}
}

2.字符输出流(FileWriter)

顶级父类: java.io.Write
按照写入的目的端类型不同,分为若干子类
最常用的写入文件:FileWrite
常用的构造器:
在这里插入图片描述
常用的读取和写入方法:
在这里插入图片描述
案例:

import java.io.FileWriter;
public class TestFileWriter {

	public static void main(String[] args) throws Exception {
	
	1创建一个字符输出流,负责写
	FileWriter   fw=new  FileWriter("C:\\Users\\Administrator\\Desktop\\2.txt");
		
	2写
	fw.write('a');
	fw.write('我');
		
	char[]  c="我爱祖国".toCharArray();
	fw.write(c);
		
	char[]  c="我爱祖国".toCharArray();
	fw.write(c,1,3);
		
	fw.write("我爱祖国");
	fw.write("我爱祖国",1,3);
		
	3关闭流
	fw.close();
}

实例:文件拷贝

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFile {
	public static  void copy(String  source,String target) throws IOException 			{
//		1创建流
		FileReader   fr=new  FileReader(source);
		FileWriter   fw=new  FileWriter(target);
		
//		2读写
		char[]  c=new  char[1024];
		int  i=fr.read(c);
		while(i!=-1) {
			fw.write(c, 0, i);
            fw.flush();//刷新,强制写
			i=fr.read(c);
		}
		
//		3关闭流
		fw.close();//先刷新,再关闭
		fr.close();
	} 
	
	public static void main(String[] args) {
		try {
			copy("C:\\Users\\Administrator\\Desktop\\1.txt","C:\\Users\\Administrator\\Desktop\\2.txt");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值