黑马程序员_IO流

来源:互联网 发布:js confirm的返回值 编辑:程序博客网 时间:2024/04/29 21:11

-----------android培训、java培训、java+3G学习型技术博客、期待与您交流!------------

IO流框架图


IO流最终要以对象来体现,对象都存在IO包中。

流也进行分类:

1:输入流(读)和输出流(写)。

2:因为处理的数据不同,分为字节流和字符流。

那么为什么要有字符流呢?

因为字符每个国家都不一样。所以涉及到了字符编码问题。那么GBK编码的中文用unicode编码解析是有问题的。所以需要获取中文字节数据的同时+指定的编码表才可以解析正确数据。为了方便于文字的解析。所以将字节流和编码表封装成对象。这个对象就是字符流。这就是字符流的由来。只要操作的字符数据,优先考虑使用字符流体系。

字符流


import java.io.FileWriter;
import java.io.IOException;
public class Test17 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建一个文件流对象,并明确要操作的文件
//将文件创建到指定的路径,如果有同名文件会被覆盖
//这一步主要是确定要存储数据的目的地
FileWriter fw = new FileWriter("a.txt");
//调用write方法,将数据写入流中
fw.write("abcde");
//将流中的数据刷新到目的地中
/*flush()和close()的区别:flush()刷新后流还可以继续写入数据
close()关闭流之前会刷新流中的数据 但是关闭后不可以再续写数据*/
fw.flush();
//关闭流资源,在关闭之前会对数据刷新一次,将数据刷新到目的地中
fw.close();
}
}
import java.io.FileWriter;

import java.io.IOException;

public class Test17 {

/**

 * @param args

 * @throws IOException

**/

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

 //创建一个文件流对象,并明确要操作的文件

//将文件创建到指定的路径,如果有同名文件会被覆盖

 //这一步主要是确定要存储数据的目的地

FileWriter fw = new FileWriter("a.txt");

//调用write方法,将数据写入流中

fw.write("abcde");

//将流中的数据刷新到目的地中

/*

flush()和close()的区别:

flush()刷新后流还可以继续写入数据

close()关闭流之前会刷新流中的数据

但是关闭后不可以再续写数据

*/

fw.flush();

 //关闭流资源,在关闭之前会对数据刷新一次,将数据刷新到目的地中

fw.close();

} }

close()和flush()的区别:

flush():将缓冲区的数据刷到目的地中后,流可以使用。

close():将缓冲区的数据刷到目的地中后,流就关闭了,该方法主要用于结束调用的底层资源。

流在操作过程中的异常处理:


import java.io.FileWriter;
import java.io.IOException;
public class Test16 {
public static void main(String[] args) {
FileWriter fw = null;
try {
//指定的路径不正确或不存在 而抛出异常
fw = new FileWriter("Demo.java");
//数据写入过多,可能会写满硬盘从而抛出异常
fw.write("avddd");
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fw!=null) {
//关闭的资源为空时不能调用close方法 从而抛出异常
fw.close();
}
fw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileWriter;

 import java.io.IOException;

 public class Test16 {

public static void main(String[] args) {

 FileWriter fw = null;

try {

//指定的路径不正确或不存在 而抛出异常

fw = new FileWriter("Demo.java");

 //数据写入过多,可能会写满硬盘从而抛出异常

fw.write("avddd"); }

 catch (IOException e) {

 e.printStackTrace();

 }

 try {

 if (fw!=null) {

//关闭的资源为空时不能调用close方法 从而抛出异常

fw.close(); }

fw.flush();

 } catch (IOException e) { e.printStackTrace(); } } }


FileReader:使用Reader体系,读取一个文本文件中的数据。

创建可以读取文本文件的流对象。让创建好的流对象和指定的文件相关联。


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test18 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建可以读取文件的流对象FileReader 将流对象和文件相关联
FileReader fr = new FileReader("a.txt");
int ch =0;
//调用read方法 读取一个字符
while ((ch = fr.read())!=-1) {
System.out.println((char)ch);
}
}
}
-----------android培训、java培训、java+3G学习型技术博客、期待与您交流!------------

详细请查看:http://net.itheima.com

 

原创粉丝点击