字符流和字节流(FileReader类和FileWriter类)
字符流主要用于支持Unicode的文字内容,绝大多数在字节流中所提供的类,都可在此找到对应的类。其中,输入流Reader抽象类帮助用户在Unicode流内获得字符数据,而Writer类则实现了输出。可以利用Reader类是所有字符输入流的父类,而Writer类所有字符输出流的的父类。
Reader类和Writer类
以Reader和Writer为基础派生的一系列类。Reader和Writer都是抽像类。只提供了一系列用于字符流处理的接口。
FileReader类和FileWriter类。
前面的FileInputStream使用字节读取文件,字节流不能直接操作Unicode字符,所以java提供了字符流。
1.FileReader类
FileReader类于读取文件,每次读取文件中的第一个未读取过的字符,并以ASCII码或UTF-8码的形式输入到程序中。语法格式如下:
FileReader fr=new FileReader(filename)
其中文件名必须是文件完整的路径和文件名,如果程序和该文件保存在同一目录下,则可以只用文件名而不需要其路径,FileReader类中的read()方法用来读取字符并返回一个相应的int类型数据。当读到文件的结尾处时,则返回值-1,在完成文件数据的读取后需要使用close()方法关闭打开的文件。
代码如下:
import java.io.*;
public class FileReadDemo {
public static void main(String []args)throws IOException{
//创建一个FileRead类型的对象
FileReader fr=new FileReader("student.txt");
int a=fr.read();//从文件中读取字符并存入a中
while(a!=-1){//判断文件内容是否结束
System.out.print((char)a);//输出读取的字符到控制台
a=fr.read();//读取下一个字符
}
fr.close();//关闭文件 阅读器
}
}
在这个程序中构建一个文件阅读器FileReader的对象实例fr,通过while循环语句调用其read方法依次读取字符,并判断是否到了文件结束出。如果没有到文件结尾,则将读取的整数强制转换为char类型,并输出到控制台中,在程序最后,要关闭流。在声明main()方法时,添加了throwsIOException用来处理输出和输入文件时发生的异常。当然,也可以使用try和catch语句来处理异常。但是如果不需要异常的具体处理方法,则可以只用throws关键字。
2:FileWriter类
FileWriter类用于将数据写入文件语法格式如下:
FileWriter fr=new FileWriter(filename);
其中,文件名必须是文件的完整路径和文件名,如果程序和该文件保存在同一目录下,则可以只用文件名而不需要其他路径。如果该文件名不存在,则系统会自动创建该文件。FileWriter类中的write()方法可以将文字或字符串写入文件中。当完成数据写入操作后,使用close()方法关闭文件。示例代码如下:
import java.io.*;
public class FileWriter {
public static void main(String []args) throws IOException{
//创建一个FileWriter类型的对象
FileWriter fw=new FileWriter();
fw.write("thisismy");//像文件中写入字符串
fw.write("stu");
fw.write("dent");
fw.write(".");//向文件中写入字符
fw.write("txt");
fw.write("这个是我的文件。");
fe.close();
}
}
}
在这个程序中,构建了一个写入器FileWriter对象实例fw,调用其write()方法向文本文件student.txt中写入各种文本。在这个程序中,没有代码捕获异常,而是在main()方法头部使用throws关键字抛出IOException异常,将异常交给虚拟机处理。
字符流和字节流(FileReader类和FileWriter类)的更多相关文章
- 字符流;字节流;带缓冲的输入输出流;以及用scanner读文件
概念: InputStream类是字节输入流的抽象类,是所有字节输入流的父类. OutputStream类是字节输入流的抽象类,是所有字节输出流的父类. In(可以理解为读)Out(可以理解为写) 一 ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- [Java] I/O底层原理之一:字符流、字节流及其源码分析
关于 I/O 的类可以分为四种: 关于字节的操作:InputStream 和 OutPutStream: 关于字符的操作:Writer 和 Reader: 关于磁盘的操作:File: 关于网络的操作: ...
- 理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- Java字符流和字节流对文件操作
记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writ ...
- Java中字符流与字节流的区别
字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组.所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单 ...
- 理解Java中字符流与字节流
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...
- 理解Java中字符流与字节流的区别(转)
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- java字符流与字节流的区别是什么
java中字符流与字节流的区别: 1.字节流操作的基本单元为字节:字符流操作的基本单元为Unicode码元. 2.字节流默认不使用缓冲区:字符流使用缓冲区. 3.字节流通常用于处理二进制数据,实际上它 ...
随机推荐
- 【CF】148D Bag of mice
http://codeforces.com/problemset/problem/148/D 题意:w个白b个黑,公主和龙轮流取,公主先取,等概率取到一个.当龙取完后,会等概率跳出一只.(0<= ...
- ThinkPhp循环出数据库中的内容并输出到模板
<foreach name='user' item='v'> //循环出数据库中的内容 对应控制器->方法中的 $this->assign('user',M('user')- ...
- db2代理和优化
DB2 的代理 (agent) 是位于 DB2 服务器中的服务于应用程序请求的一些进程或线程.当有外部应用程序连接至 DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求.一般 DB2 ...
- get,post 区别,HTTP通信
GET & POST GET 1.GET 的本质是"得" 2.从服务器拿数据,效率更高 3.从数学的角度来讲,GET 的结果是"幂等" ...
- CentOS 6.7安装Mysql 5.7
Step1: 检测系统是否自带安装mysql # yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖命令: # yum -y remove ...
- 在docker 中搭建gitlab环境
docker run --name gitlab -it -p : -p : -p : \ --env 'GITLAB_SECRETS_DB_KEY_BASE=Rpwq35wjLJ5N6CrkvdXs ...
- Linux多线程实例练习 - pthread_exit() 与 pthread_join()
Linux多线程实例练习 - pthread_exit 与 pthread_join pthread_exit():终止当前线程 void pthread_exit(void* retval); pt ...
- ng-switch 指令
<!--标准用法--> <div ng-switch on="showSecret"> <div ng-switch-when="true& ...
- 必备:常用px,pt,em换算表(转)
常用px,pt,em换算表 pt (point,磅):是一个物理长度单位,指的是72分之一英寸. px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理 ...
- java分享第三天(异常)
异常的处理办法之一 捕获异常(try,catch,finally) 1 try语句指定了一段代码,该段代码就是一次捕获并处理的范围.在执行过程中,当任意一条语句产生异常时,就会跳过该段中后面的代码.代 ...