▶  字符输入流(Reader)

✔  java.io.Reader :字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类

共性的成员方法:

    ---  int read() :读取单个字符并返回

    ---  int read(char[ ]  cbuf ) :一次读取多个字符,将字符读入数组

    ---  void close() :关闭该流并释放与之关联的所有资源

 

✔  java.io.FileReader extends InputStreamReader extends Reader

FileReader :文件字符输入流 --- 作用是把硬盘文件中的数据以字符的方式读取到内存中

构造方法:

  ---  FileReader( String fillname )

  ---  FileReader( File file )

参数:读取文件的数据源

           String filename :文件的路径

           File file :一个文件

FileReader构造方法的作用:

(1)创建一个 FileReader 对象

(2)会把 FileReader 对象指向要读取的文件

 

✔  字符输入流的使用步骤

(1)创建 FileReader 对象,构造方法中绑定要读取的数据源

(2)使用 FileReader 对象中的方法read读取文件

(3)释放资源

java学习之高级语法(二十三)----- IO字符流

String类的构造方法:

---  String( char[ ]  value ) :把字符数组转换为字符串

---  String( char[ ]  value,int offset,int count ) :把字符数组的一部分转换为字符串,offset是数组的开始索引,count是转换的个数

java学习之高级语法(二十三)----- IO字符流

 

▶  字符输出流(Writer)

✔  java.io.Writer :字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类

共性成员方法:

---  void write( int  c ) :写入单个字符

---  void write( char[ ]  cbuf ) :写入字符数组

---  abstract  void  write( char[ ] cbuf,int off,int len ) :写入字符数组的某一部分,off是数组的开始索引,len是写的字符的个数

---  void write( String str ) :写入字符串

---  void write( String str,int off,int len ) :写入字符串的某一部分,off是字符串的开始索引,len是写的字符个数

---  void flush() :刷新该流的缓冲

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

 

✔  java.io.FileWriter extends OutputStream extends Writer

FileWriter :文件字符输出流 --- 作用是把内存中的字符数据写入到文件中

构造方法:

---  FileWriter( File file ) :根据给定的File对象构造一个 FileWriter 对象

---  FileWriter( String filename ) :根据给定的文件名构造一个 FileWriter 对象

参数:写入数据的目的地

           String filename --- 文件路径

           File file --- 是一个文件

构造方法的作用:

(1)创建一个 FileWriter 对象

(2)根据构造方法中传递的文件 / 文件的路径,创建文件

(3)把 FileWriter 对象指向创建好的文件

 

✔  字符输出流的使用步骤!!!

(1)创建 FileWriter 对象,构造方法中绑定要写入数据的目的地

(2)使用 FileWriter 中的方法 write,把数据写入到内存缓冲区中(字符转换为字节的过程)

(3)使用 FileWriter 中的方法flush,把内存缓冲区中的数据刷新到文件中

(4)释放资源(会先把内存缓冲区中的数据刷新到文件中)

java学习之高级语法(二十三)----- IO字符流

 

✔  flush方法和close方法的区别

flush :刷新缓冲区,流对象可以继续使用

close :先刷新缓冲区,然后通知系统释放资源,流对象不可以再被使用了

java学习之高级语法(二十三)----- IO字符流

 

✔  字符输出流写数据的其他方法

java学习之高级语法(二十三)----- IO字符流

输出:

java学习之高级语法(二十三)----- IO字符流

 

✔  字符输出流的续写和换行

续写 / 追加写:使用两个参数的构造方法

---  FileWriter( String filename ,boolean append )

---  FileWriter( File file ,boolean append )

参数:

         String filename 、File file  ---   写入数据的目的地

         boolean append  ---  续写开关,true则不会创建新的文件覆盖原文件,可以续写;false则创建新的文件覆盖原文件

 

换行:换行符号

           windows :\r\n          Linux :/n            mac :/r

java学习之高级语法(二十三)----- IO字符流

 

▶  IO异常的处理

之前一直把异常抛出,而实际开发中并不能这样处理,应该使用 try...catch...finally 代码块处理异常部分

在 jdk1.7 之前使用 try catch finally 处理流中的异常

格式:

         try {  

                可能会出现异常的代码 

          } catch(异常类变量  变量名) {

                异常的处理逻辑             

          } finally {

                 一定会执行的代码

                 资源释放

          }

java学习之高级语法(二十三)----- IO字符流

 

✔  JDK7 的新特性:在 try 的后面可以增加一个(),在括号中可以定义流对象,则这个流对象的作用域就在 try 中有效,try 中的代码执行完毕,会自动把流对象释放,不用写 finally 

格式:

         try( 定义流对象 ){

                    可能会出现异常的代码        

         } catch( 异常类变量  变量名 ){

                    异常处理逻辑

         }

java学习之高级语法(二十三)----- IO字符流

 

✔  JDK9 的新特性 :try 的前面可以定义流对象,在 try 后面的() 中可以直接引入流对象的名称(变量名),在 try 代码执行完毕之后流对象也可以释放掉,不用写 finally

格式:

        定义流对象 ;

         try( 流对象名称;流对象名称;... ){

                    可能会出现异常的代码        

         } catch( 异常类变量  变量名 ){

                    异常处理逻辑

         }

java学习之高级语法(二十三)----- IO字符流

相关文章:

  • 2021-09-17
  • 2021-06-01
  • 2021-12-07
  • 2022-12-23
  • 2021-08-20
  • 2021-11-29
猜你喜欢
  • 2021-08-11
  • 2021-10-31
  • 2022-01-21
  • 2021-06-06
  • 2022-01-23
  • 2022-12-23
  • 2021-07-27
相关资源
相似解决方案