IO流

IO流

在这里插入图片描述

字母I:Input
字母O:output 输出
流:数据流
IO流的分类:

输入流和输出流 vs 字节流
字节流:可以处理任何一种文件数据
字符流:只能处理纯文本文件
字符输入流:读纯文本文件
字符输出流:写纯文本文件

如果希望将数据写到纯文本文件中,那么可以使用FileWriter类。

1.导包
import java.io.FileWriter;

2.创建,构造方法
public FileWriter(String fileName):参数字符串就是文件的路径名称。
FileWriter fw = new FileWriter(“file01.txt”);
文件扩展名只能决定默认用什么软件打开文件,不能决定其内容。

3.使用,成员方法
写数据:public void writer(String str):参数就是需要写到文件中的字符串。
关闭流:public void close():关闭,释放相关资源。

总结一下:FileWriter基本使用步骤:创、写、关

在使用FileWriter的时候:

1.如果指定的文件不存在,那么会自动创建该文件
2.如果指定的文件已经存在,那么将会覆盖写入
3.如果不希望进行覆盖写入,而希望进行追加,那么要用另外一种重载形式的构造方法;
public FileWriter(String fileName , boolean append);第二个参数如果是true值,那么将会追加写入

public  static void main(String [] args)throws IPException{
     FileWriter  fw  = new FileWriter("file02.txt",true);//创
   fw.writer("java");//写  
   fw.close();//关

}

如何才能实现换行的效果?
换行其实也是一种字符,叫做”换行符“。

windows当中的换行符是:\r\n 这叫做两个字符,一个是\r一个是\n
macOS当中的换行符是:早期是\r ,现在是\n
Linux当中的换行符是\n

在这里插入图片描述
在这里插入图片描述
FileReader用来将文本文件当中的字符读取到程序中。

使用的步骤:
1.导包
import java.io.FileReader;

2.创建,构造方法;
public FileReader(String fileName);参数仍然是文件的路径名。
FileReader fr = new FileReader(”fileXxx.txt“);
如果指定文件名对应的文件不存在,那么将会直接报错
3.使用,成员方法;
读取单个字符:public int read():读取下一个字符,得到对应的ASCII或Unicode值

关闭释放资源:public void close()

使用FileReader的步骤也是三个字:创、读、关
每次调用read方法,都会尝试读取下一个新字符

扩展:
如果一个int变量确实是一个文字对应的ASCII值,那么可以通过格式将其翻译成为文字
(char)变量名称

public  static  void  main(String [] args){
FileReader fr = new FileReader("file06.txt");//创建
//返回值是读取到的单个字符,对应的ASCII或者Unicode数值
int ch = fr.read();
System.out.println(ch);//  97 a
int ch = fr.read();
System.out.println(ch);//98 b
int ch = fr.read();
System.out.println(ch);//99 c
int ch = fr.read();
System.out.println(ch);//-1代表没有更多字符可以读取

fr.close();//关闭
}
public  static  void  main(String [] args){
FileReader fr = new FileReader("file06.txt");//创建
int ch;//代表一个单个字符(对应的ASCII/Unicode)
while((ch = fr.read()!= -1{
System.out.println((char)ch);//a,b,c
}

fr.close();//关闭
}
public static void main(String[] args)throws IOException{
    FileReader  fr = new FileReader("file07.txt");
char[] buf = new char[2];
int len;//代表有效个数
while ((len = fr.read(buf))!= -1){
String  str = new String(buf,0,len);
System.out.println(str);
}
fr.close();
}

BufferedWriter
在这里插入图片描述

构造方法:
public BufferedWrirer(FileWriter fw):参数就是一个普通的FileWriter对象。
BUfferedWriter额外提供了一个换行的方法:
public void newline():将会自动根据操作系统的不同,选择写入\r\n或者\r或者\n

public static void main(String [] args) throws IOException{
//首先创建一个普通的FileWriter
FileWriter  fw = new  FileWriter"file08.txt";
//将这个普通的FileWriter对象传递给BufferedWriter构造方法即可。
BufferWriter  bw = new  BufferWriter(fw);
//后面bw的时候,和fw基本没有区别。
bw.writer("Hello");
bw.close();

  

}

BufferedReader
在这里插入图片描述

public static void main(String[] args) throws IOException{
    FileReader fr = new FileReader("file10.txt");
    //将其包装成为缓冲区的BufferedReader
    BufferedReader  br = new BufferedReader(fr);
    //读取单个字符
    int ch;//代表单个字符
    while ((ch = br.read())!= -1){
     System.out.println((char)ch);
}

     //读取字符数组(其实就是从8192的缓冲区当中一次性取出多个字符使用)
     char[]  buf = new char[2];//一次性取两个
     int len;//代表有效个数
     while((len = br.read(buf))!=-1){
      String str = new String(buf,0,len);
      System.out.println(str);
 }
 br.close();
}

BufferedReader提供了一个方法,可以读取一整行字符串。

public String readLine():读取一整行字符串,返回值当中不包含换行符。

public static void main(String[] args){
FileReader fr = new  FileReader("file11.txt");
BufferedReader br = new BufferedReader(fr);

String line;//代表一行字符串
while ((line = br.readerlin())!=null){
System.out.println(line);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值