字符流读写

写入文件

FileWriter类:

FileWriter fw=new FileWriter("hello");//在workspace工作空间里创建文件,文件名为hello

FileWriter fw=new FileWriter("C:\\hello");//在C盘创建文件,文件名为hello

FileWriter fw=new FileWriter("C:\\hello.txt");//在C盘创建txt文件hello

注意:在相同位置已经有同名文件会覆盖原来的文件,即一个新建的空文件。 路径不对则会抛出异常

BufferedWriter类:

BufferedWriter(Writer out)

这将创建一个使用默认大小的输出缓冲区的缓冲字符输出流。

BufferedWriter(Writer out, int sz) 

这将创建一个新的缓冲字符输出流,该流使用给定大小的输出缓冲区。

常用代码

代码作用
close()关闭流,先刷新。
flush()刷新流。
write(char[] cbuf, int off, int len)写入字符数组的一部分。
write(int c)写一个字符
write(String s, int off, int len)写一个字符串的一部分。
newLine()写一行行分隔符。

案例:

File f2=new File("C:/b.txt");
if(!f2.exists()){
    f2.createNewFile();
}

//定义一个字符输出流,F2文件写入内容
Writer out=new FileWriter(f2);

out.write(97);

out.write((int)'中');

char[] ch={'河','南','南','阳','农','业'};
//out.write(ch);
I
out.write(ch,0,2);
out.write("移动2103班");
out.write("abcdef",0,3);

out.flush();//字符输出流有缓冲区的概念,需要刷新缓冲区才更新到硬盘
out.close();

读取字符:read方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回-1,循环读取。

package HomeWork;
 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
 
public class FileReaderTest1 {
    public static void main(String[] args) throws IOException {
        //使用文件名称创建流对象
        FileReader fileReader=new FileReader("read.txt");
        //定义变量,保存数据
        int b;
        //循环读取
        while ((b=fileReader.read())!=-1){
            System.out.println((char)b);
        }
        //关闭资源
        fileReader.close();
    }
}

读取多个字符

import java.io.*;
import java.util.Arrays;
 
public class ReaderTest006 {
    public static void main(String[] args) throws IOException {
        //定义File对象
        File f1=new File("D:/a.txt");
        //字符输入流Reader
        Reader in=new FileReader(f1);
        //使用缓冲区读取多个字符
        char[] buffer=new char[10];
       //每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取的字符数
        int n=in.read(buffer);
        System.out.println(n);
        System.out.println(Arrays.toString(buffer));
        char[] buffer1=new char[10];
        int n1=in.read(buffer1);//每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取到的字符数
        System.out.println(n1);
        System.out.println(Arrays.toString(buffer1));
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值