IO流

ASCII码:0:48;A:65;a:97;

FileWriter

可以将数据写入纯文本当中,没有便创建,一般是覆盖写入,有五个构造方法,

导包

import java.io.FileWriter;
CTRL+SHIFT+O 便捷键导入;

创建,构造方法

  public FileWriter(String filename)//参数字符串就是文件的路径名称
  FileWriter fw = new FileWriter("file01.txt");

文件扩展名只能决定用什么软件打开文件(打开方式),不能决定其内容
总结一下:FileWriter基本使用步骤:创,写,关。
关闭的写法是fw.close();

追加写入

一般FileWrite写入是覆盖写入,若想使用追加写入,便使用下面方法

  public FileWriter(String filename, boolean append);//若布尔值是true,便追加写入

换行写入

换行也是一种字符,叫换行符:
windows当中的换行符是 “\r\n” 这叫做两个字符"\r"和"\n"
macOS当中的换行符是早期是"\r",现在是"\n"
liunx当中的换行符是 “\n”

【文字与数字的转换】

  1. 所有的数据都是数字,文本的规则是ASCII码和Unicode表;48是0;65是A;97是A;

  2. 【FileWrite方法的重载】

     public void write(int ch);参数是单个文字对应的数字(参考ASCII码和Unicode表);
     public void write(String str);写一个完整的字符串;
     public void write(String str, int offset, int count);写字符串的一部分内容;
     public void write(char[] array)写一个完整的字符数组;
     public void write(char[] array, int offset, int count);写字符数组中的一部分;
     //注释:offset是想要字符的开始索引,count是想要几个字符;
    
  3. BufferedWriter是FileWriter的升级版

两者差不多,也是一种用来写文件的类,属于字符输出!
最大区别BufferedWriter肚子里有一个8192个char[]字符数组,当中缓冲区使用;
每次在写数据的时候,实际上都是在不断地向缓存数组当中添加字符。
如果缓冲数组满了那么将会统一的写到硬盘的文件当中;
如果还未写满,那么就等待下一次写入;
如果最终关闭时,数组仍然未满,那么也会将剩余的有效部分写到硬盘文件。

  1. 如何使用BufferedWriter?

     A.首先创建一个普通的FileWriter;
     B.将这个普通的FileWriter包装成为缓冲的BufferedWriter,用构造方法就行;
     C.后面BufferedWriter使用方法heFileWriter方法差不多;
     D.构造方法:public BufferedWriter(FileWriter fw);参数就是一个普通的FileWriter对象;
    
  2. BufferedWriter与File的方法区别

     A.BufferedWriter额外提供了一个换行的方法;
     B.public void newLine();	将会自动根据系统来打换行符;以便兼容所有系统;
     C.调用方法:bw.newLine();不需要参数;
    
  3. 【注意事项】

     1.本方法会有异常抛出,可能是因为系统权限不足,内存不足...现阶段不处理异常,
     在mian方法参数后面加入throws IOException,表示不处理异常;
     2.千万不能忘记最后调用close方法;
     3.FileWriter是类。write是方法;
     4.使用BUfferedWriter时,要记得关闭流时关闭的是BufferedWriter的流;
    

FileReader用来将文本文件里的字符读取到程序当中。
使用的步骤:

  1. 导包
    import java.io.FileReader;

  2. 创建,构造方法

      public FileReader(String filename);参数仍是文件的路径名。
      FileReader fr = new fileReader("filename.txt");
      如果指定的文件名对应的文件不存在,那么会报错。
    
  3. 使用,成员方法
    读取单个字符,public int read();读取下一个字符,得到对应的ASCII码或Unicode值。
    返回值是一个int值,是ASCII码或Unicode表;
    关闭释放资源:public void close();

使用FileReader的步骤也是三个字:创,建,关。

  1. 为了提高速率,FileReader提供了另外一种重载形式的read方法;
    public int read(char[] buf);
    一次读取整个字符串的数据。
    参数是一个字符数组,用来承载读取到的多个字符。
    【返回值代表的是数组当中的读取的有效个数。】

  2. BufferedWriter和FileWriter差不多,也是用来读取文件的一种字符输入流。
    区别就在于BufferedReader肚子里有一个8192长度的char[]字符数组,当做缓冲区使用。
    当读取数据的时候,一次性从硬盘当中读取最多8192个字符,放在数组缓冲区当中。
    在调用read方法的时候,只是从缓冲区当中拿出来字符进行使用。
    如果缓冲区当中的字符被“取空”,那么将会自动再次读取最多8192个再次放在缓神区当中。

  3. 如何使用BufferedReader?
    A.首先创建一个普通的FileReader
    B.将这个普通的FileReader包装成为缓沖的BufferedReader,构造方法。
    C.使用起来和普通的FileReader基本没有区别.
    D.构造方法:public BufferedReader(FileReader fr);参数就是一个普通的FileReader对象。

  4. BufferedReader额外提供了一个方法,可以读取一整行字符串。
    public String readLine();读取一整行字符串,返回值当中不包含换行符。

【注意事项】

1.每次调用read();都会读取下一位字符;
2.在print输入中也可以进行强-制转换;
3.FileReader是类。read是方法;
4.FileReader里的read方法执行到最后是,会返回-1,代表没有更多内容;
5.BufferedReader里的read方法执行到最后是,会返回null,代表没有更多内容;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值