IO流--字符流写数据

简介:

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

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

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

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

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



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

spacer.gif


类名中包含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流写数据的内容,下次分享字符流读数据的内容.

本文转自xinsz08の平行时空博客51CTO博客,原文链接http://blog.51cto.com/xinsz08/1941451如需转载请自行联系原作者


维度2018

相关文章
|
8月前
|
存储 Java 数据安全/隐私保护
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
|
3月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
55 1
|
3月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
132 1
|
5月前
|
存储 缓存 Java
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
62 3
|
7月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流处理二进制数据,如图像,由InputStream/OutputStream家族管理;字符流处理文本,基于Reader/Writer,适于文本文件。在文件复制示例中,字节流用FileInputStream/FileOutputStream,字符流用FileReader/FileWriter。选择流类型取决于数据类型和处理需求,文本文件优选字符流,二进制数据则选字节流。
87 6
|
6月前
|
存储 缓存 Java
JavaSE—IO流之字符流与字节流
JavaSE—IO流之字符流与字节流
|
7月前
|
存储 自然语言处理 Java
Java IO流完全手册:字节流和字符流的常见应用场景分析!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流用于二进制文件读写及网络通信,如图片和音频处理;字符流适用于文本文件操作,支持多语言编码,确保文本正确性。在处理数据时,根据内容类型选择合适的流至关重要。
105 0
|
7月前
|
自然语言处理 Java
Java IO流进阶教程:掌握字节流和字符流的高级用法!
【6月更文挑战第26天】Java IO流助你高效交换数据,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的高级技巧。缓冲流(Buffered*)提升读写性能,对象流(Object*Stream)支持对象序列化。字符流的BufferedReader/BufferedWriter优化文本处理,注意字符集如UTF-8用于编码转换。掌握这些,优化IO操作,提升代码质量。
63 0
|
7月前
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
98 0
|
7月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
【6月更文挑战第26天】Java IO流涵盖字节流与字符流。字节流(InputStream/OutputStream)处理数据单位为字节,适用于二进制和文本,而字符流(Reader/Writer)专注于文本,处理单位为字符,处理编码转换。字符流在字节流基础上添加编码处理,以装饰器模式实现。文件复制示例展示了两者区别:字节流直接复制所有数据,字符流处理字符编码。理解并选择适当流类型对优化程序至关重要。
165 0

热门文章

最新文章