博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流--字符流写数据
阅读量:7197 次
发布时间:2019-06-29

本文共 2068 字,大约阅读时间需要 6 分钟。

IO流是用来处理设备之间的数据传输的,诸如:文件的复制,上传下载文件

Java中的流可以从不同的角度进行分类:

- 按照流的方向不同:分为输入流和输出流。

- 按照处理数据单位的不同:分为字节流和字符流。

- 按照功能不同:分为节点流和处理流

要区分字符流和字节流,我们可以从类名来区分

类名中包含Reader:字符流  输入流

类名中包含Writer:字符流  输出流

类名中包含Input:字节流  输入流

类名中包含Output:字节流  输出流

包含Stream:字节流

今天着重来看下字符流.

Write顾名思义就是写的意思,FileWriter(String fileName) 指的是传递一个文件的名称

成员方法:

void write(String str) 往文件中写入一个字符串

void flush() 刷新该流的缓冲,把内存缓冲区中的数据刷新到新的文件中去

void close() 关闭此流,但是要先刷新它

输出流写数据的一般步骤(也是最基本的步骤)

1.创建输出流对象

2.调用输出流对象写数据的方法

3.刷新缓存,写入文件

4.释放资源.

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import 
java.io.FileWriter;
import 
java.io.IOException;
public 
class 
DemoFileWriter {
public 
static 
void 
main(String[] args) 
throws 
IOException {
//1.创建输出流对象,导包和抛出异常(此次为演示,不解决异常)
FileWriter fw = 
new 
FileWriter(
"a.txt"
);
/**
* 创建输出流对象做了如下几件事情
* A.调用系统资源创建了一个文件a.txt
* B.创建了输出流对象
* C.把输出流对象指向文件
*/
//2.调用输出流对象写数据的方法write()  写一个字符串
fw.write(
"IO流大法好"
);
/*
* 3.此时数据是写在了缓存中,所以需要做接下来的第三步,刷新缓存.
*/
fw.flush();
//4.通知系统释放资源,释放之后再调用writer() 就没有作用了
fw.close();
}
}

这里需要区分关闭close()和刷新flush()方法的区别.

1.flush(); 刷新缓冲区,刷新后流对象还可以继续用

2.close(); 释放资源,在释放前会强制刷新缓冲区.释放后流对象就不能再使用了.

FileWriter写数据的5个方法:

1.写一个字符串数据   void write(String str);

2.写一个字符串中的一部分数据,index开始索引,len表示写几个 ,void write(String str, int len);

3.写一个字符数据, void write(int ch)  这里之所以用int,是因为char类型的数据也对应着int数值.比如

'a'  97

4.写一个字符数组的数据 void write(char[] chs);

5.写一个字符数组的一部分数据,index:开始索引,len写几个 void write(char[] chs,int index,int len);

举个栗子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import 
java.io.FileWriter;
import 
java.io.IOException;
public 
class 
DemoFileWriter {
public 
static 
void 
main(String[] args) 
throws 
IOException {
//1.创建输出流对象,导包和抛出异常(此次为演示,不解决异常)
FileWriter fw = 
new 
FileWriter(
"a.txt"
);
// 写入一个字符串数据 void write(String str);
fw.write(
"abcde"
);
//写一个字符串中的一部分数据
fw.write(
"abcde"
,
1
,
3
);
//写一个字符数组数据
char
[] chs = {
'a'
,
'b'
,
'c'
,
'd'
};
fw.write(chs);
//写完数据不要忘记刷新和关闭,要不然文件里会没有数据
fw.flush();
fw.close();
}
}

如果需要在文件中添加换行怎么办呢?

Windows中的换行: \r\n

linux 中 的换行 \n

这就是关于IO流写数据的内容,下次分享字符流读数据的内容.

本文转自 维度2018 51CTO博客,原文链接:http://blog.51cto.com/xinsz08/1941451,如需转载请自行联系原作者
你可能感兴趣的文章
Cisco 思科网络设备模拟器 GNS3 使用指南
查看>>
Android版添加phonegap--百度api定位插件教程
查看>>
arm c中字节对齐
查看>>
51cto我来了
查看>>
Linux的Web服务基础概念
查看>>
LNMP搭建
查看>>
RecyclerView的基础使用
查看>>
nginx学习笔记
查看>>
安装PHP扩展eaccelerator加速器
查看>>
SVN 学习
查看>>
SmartSVN设置ignoreList
查看>>
ios-网址中的中文或者非法字符转换
查看>>
自定义通知与系统通知的学习(详解)
查看>>
[翻译]Selenium自动化测试框官网翻译-目录
查看>>
Application tried to present modal view controller on itself
查看>>
再见2011,奋斗2012
查看>>
菜鸟学Linux 第051篇笔记 web-server, http
查看>>
我的友情链接
查看>>
Windows Server 2008遗忘管理员密码后的解决方法
查看>>
传统电脑与终端机的区别优势
查看>>