黑马程序员__IO流
2013-02-12 16:01
169 查看
IO流
IO流就是输入输出流(InputStream OutputStream)。
IO分类
按照流向分:
输入流
输出流
按操作数据分:
字节流
字符流
根据IO流的分类IO流有四个抽象基类
字节流抽象基类
InputStream
OutputStream
字符流抽象基类
Reader
Writer
流操作通用流是字节流,字符流是基于字节流的。
字符流每次读取一个字符,也就是两个字节。
字符流操作文本文件跟方便。
字符流融合了编码表。
IO流是用于操作数据的。
最常见的体现形式是操作文件。
FileWriter:字符文件输出流类。
FileWriter的是用
1.创建一个FileWriter对象。
new FileWriter(String name);new FileWriter(String name,boolean bln);
FileWriter类没有空构造函数,该对象被初始化时必须要明确被操作的文件。
而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖(调用第一个构造函数)。
其实该步骤就是要明确数据要存放的位置。
2.调用write方法,将字符写入到流中。
write(字符数据);可以是单个字符、字符数组或者字符串。
3.刷新流缓冲区中的数据,将数据刷新到指定的文件中。
flush()
4.关闭流,关闭流的同时会自动调用一次刷新,将数据刷新到指定的文件中。
close()
close()和flush()方法的区别
flush刷新后,流可以继续使用。
close刷新后,流会被关闭。
FileReader:字符文件输入流类。
FileReader的使用
1.创建一个FileReader对象。
new FileReader(String name);
创建一个文件读取流对象,和指定名称的文件相关联。
要保证该文件是已经存在的,如果不存在会发生FileNotFoundException
2.调用read方法,读取字符。
read():一次读取一个字符,而且会自动往下读。
3.关闭流。
close()
文本文件两种读取方式
1.一次读取一个字符
2.创建字符缓冲区,将缓冲区可容纳的字符数读取到缓冲区中,
在对缓冲区进行操作。缓冲区长度建议是1024的倍数。
第一种方式范例:
Java代码
FileReader fr=new FileReader("demo.java");
int data=0;
while((data=fr.read()!=-1)
{
System.out.print((char)data);
}
第二种方式
Java代码
FilerReader fr=new FileReader("demo.java");
char[] buf=new char[1024];
int len=0;
while((len=fr.read(buf)!=-1)//read(buf)返回读取的字符数,如果读取到文本结尾返回-1
{
System.out.print(new String(buf,0,len));
}
字符缓冲输出BufferedWriter
缓冲区的出现是为了提高流的操作效率而出现的。
jvm默认的缓冲区大小是64兆。
所以在创建缓冲区之前,必须要有流对象。
字符缓冲输出BufferedWriter流使用
1.创建一个字符写入流对象
2.将需要被提高效率的流对象作为参数传递给缓冲流的构造函数。
3.写数据
4.刷新数据,将缓冲流中的数据刷新到指定的目标。
5.关闭缓冲区,其实就是在关闭缓冲区中的流对象。
该缓冲流提供了一个跨平台的换行符
newLine()方法。
字符流在读取的时候,底层也是在用字节流将读取到的两个字节存放到缓冲字节数组中,
然后去相应的编码表中查找字符,所以字节数组用到了缓冲,
因此在读取字符的时候需要flush。
IO流就是输入输出流(InputStream OutputStream)。
IO分类
按照流向分:
输入流
输出流
按操作数据分:
字节流
字符流
根据IO流的分类IO流有四个抽象基类
字节流抽象基类
InputStream
OutputStream
字符流抽象基类
Reader
Writer
流操作通用流是字节流,字符流是基于字节流的。
字符流每次读取一个字符,也就是两个字节。
字符流操作文本文件跟方便。
字符流融合了编码表。
IO流是用于操作数据的。
最常见的体现形式是操作文件。
FileWriter:字符文件输出流类。
FileWriter的是用
1.创建一个FileWriter对象。
new FileWriter(String name);new FileWriter(String name,boolean bln);
FileWriter类没有空构造函数,该对象被初始化时必须要明确被操作的文件。
而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖(调用第一个构造函数)。
其实该步骤就是要明确数据要存放的位置。
2.调用write方法,将字符写入到流中。
write(字符数据);可以是单个字符、字符数组或者字符串。
3.刷新流缓冲区中的数据,将数据刷新到指定的文件中。
flush()
4.关闭流,关闭流的同时会自动调用一次刷新,将数据刷新到指定的文件中。
close()
close()和flush()方法的区别
flush刷新后,流可以继续使用。
close刷新后,流会被关闭。
FileReader:字符文件输入流类。
FileReader的使用
1.创建一个FileReader对象。
new FileReader(String name);
创建一个文件读取流对象,和指定名称的文件相关联。
要保证该文件是已经存在的,如果不存在会发生FileNotFoundException
2.调用read方法,读取字符。
read():一次读取一个字符,而且会自动往下读。
3.关闭流。
close()
文本文件两种读取方式
1.一次读取一个字符
2.创建字符缓冲区,将缓冲区可容纳的字符数读取到缓冲区中,
在对缓冲区进行操作。缓冲区长度建议是1024的倍数。
第一种方式范例:
Java代码
FileReader fr=new FileReader("demo.java");
int data=0;
while((data=fr.read()!=-1)
{
System.out.print((char)data);
}
FileReader fr=new FileReader("demo.java"); int data=0; while((data=fr.read()!=-1) { System.out.print((char)data); }
第二种方式
Java代码
FilerReader fr=new FileReader("demo.java");
char[] buf=new char[1024];
int len=0;
while((len=fr.read(buf)!=-1)//read(buf)返回读取的字符数,如果读取到文本结尾返回-1
{
System.out.print(new String(buf,0,len));
}
FilerReader fr=new FileReader("demo.java"); char[] buf=new char[1024]; int len=0; while((len=fr.read(buf)!=-1)//read(buf)返回读取的字符数,如果读取到文本结尾返回-1 { System.out.print(new String(buf,0,len)); }
字符缓冲输出BufferedWriter
缓冲区的出现是为了提高流的操作效率而出现的。
jvm默认的缓冲区大小是64兆。
所以在创建缓冲区之前,必须要有流对象。
字符缓冲输出BufferedWriter流使用
1.创建一个字符写入流对象
2.将需要被提高效率的流对象作为参数传递给缓冲流的构造函数。
3.写数据
4.刷新数据,将缓冲流中的数据刷新到指定的目标。
5.关闭缓冲区,其实就是在关闭缓冲区中的流对象。
该缓冲流提供了一个跨平台的换行符
newLine()方法。
字符流在读取的时候,底层也是在用字节流将读取到的两个字节存放到缓冲字节数组中,
然后去相应的编码表中查找字符,所以字节数组用到了缓冲,
因此在读取字符的时候需要flush。
相关文章推荐
- 黑马程序员_<<IO流基本操作(Writer,Reader)>>
- 黑马程序员_io流的理解
- 黑马程序员————学习日记【11】 【IO流】
- 黑马程序员---------------IO流
- 黑马程序员——JAVA语言加强部分——IO流
- 黑马程序员 java学习笔记——IO流3
- 黑马程序员_IO流_FileReader类和FileWriter类
- 黑马程序员——IO流(BufferedWriter和BufferedReader)
- 黑马程序员——————IO流(二)_File类、其他流
- 黑马程序员----IO流(二)
- 黑马程序员-7-java-IO流知识点串讲(1)-IO流概念及字符流Writer、Reader
- 黑马程序员——Java之IO流(2)
- 黑马程序员-JAVA基础-IO流中的装饰设计模式
- 黑马程序员——java-IO流概念总结
- 黑马程序员—IO流
- 黑马程序员_Java基础_IO流(File类和properties类相关操作)
- 黑马程序员学习(九) IO流的一般使用原则
- 黑马程序员_day18 其他对象和IO流)
- 黑马程序员__关于学习IO流字符流的缓冲区总结
- 黑马程序员---IO流-File类,递归