【java io流】

输出流写数据步骤:

A:创建输出流对象;

B:调用输出流对象的写数据方法,并刷新缓冲区;

C:释放资源。

public static void main (String[] args) throws IOException {

	FileWriter fw  = new FileWriter("d:\\a.txt");
	//创建输出流对象(在d盘创建格文件名为a的txt文件
	//如果没有写盘符,则该文件会创建在相对路径(即该java文件所在的项目路径下)

	fw.write("Hello World");
	//调用输出流写数据方法

	fw.flush();
	//刷新缓冲区

	fw.close();
	//释放资源,若不释放系统资源将一直处于被占用状态
}

.
相对路径:相对当前路径而言,在项目的根目录下(“a.txt”)
.
绝对路径:以盘符开始的路径(“d:\a.txt”)

  • flush():先刷新缓冲区, 方法完成后流对象(stream)还可以继续使用
  • close():先刷新缓冲区,再通知系统释放资源,完成后stream不可以使用

close()里也包含了刷新的动作,如果写入的数据较少可以不写flush()


在java里 \n 可以实现换行,但是在Windows系统识别的换行不是 \n 而是 \r\n

Windows :\r\n
Linux : \n
Mac : \r

io流实现数据的追加:
FileWriter fw = new FileWriter(" ", ture); //表示追加写入,默认是false


FileWriter写数据的方法

  • void write(String str)
  • void write(String str,int index,int len)
  • void write(int ch)
  • void write(char[] chs)
  • void write(char[] chs,int index,int len)

io流续写数据的方法

public static void main (String[] args) throws IOException {
	FileReader fr = new FileReader("a.txt", ture);
	//

	int ch;
	//当 fr.read() = -1 时说明读取到了文件尽头
	//ch = fr.read() 一次只能读取一个字符
	while(ch = fr.read() != -1) {
		System.out.print((char)ch);
	}
	fr.close();
}

io流读取文件的方法(1)

public static void main (String[] args) throws IOException {
	FileReader fr = new FileReader("a.txt");
	//同FileWriter对象的创建一样

	int ch;
	//当 fr.read() = -1 时说明读取到了文件尽头
	//ch = fr.read() 一次只能读取一个字符
	while(ch = fr.read() != -1) {
		System.out.print((char)ch);
	}
	fr.close();
}

io流读取文件的方法(2)

public static void main (String[] args) throws IOException {
	FileReader fr = new FileReader("a.txt");
	
	// int read(char[] cbuf)
	//一次读取一个字符数组的数据,返回的是实际读取的字符个数(即实际读取个数少于数组中输入个数时的情况)
	char[] chs = new char[1024];//这里可以是1024及其整数倍
	//在读取字符时换行符算两个字节(即/r/n)
	
	int len;
	while((len = fr.read(chs)) != -1) {
		System.out.print(new String(chs, len));
	}
	
	fr.close();

io流复制文件文本方法(1)

public static void main (String[] args) throws IOException {
	FileReader fr = new FileReader("a.txt");
	FileWriter fw = new FileWriter("copy.txt");
	
	int ch;
	//当 fr.read() = -1 时说明读取到了文件尽头
	while((ch = fr.read()) != -1) {
		fw.writer(ch);
	}
	
	fw.close();
	fr.close();
}

io流复制文件文本方法(2)

public static void main (String[] args) throws IOException {
	FileReader fr = new FileReader("a.txt");
	FileWriter fw = new FileWriter("copy.txt");
	
	char[] chs = new char[1024];
	int len;
	//当 fr.read() = -1 时说明读取到了文件尽头
	while((len = fr.read()) != -1) {
		fw.writer(chs, 0, len);
	}
	
	fw.close();
	fr.close();
}

  • 缓冲流的特殊功能

BufferedWriter:

void newLine():写一个换行符,这个换行符由系统决定

换行符Windows:\r\n             Mac:\r                Unix:\n

BufferedReader(读取文档字符建议直接用这个):

String readLine():一次读取一行数据,但是不读取换行符

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值