Java FileReader类对文件读入和写出数据

目录

一、读入数据

流程:

方式一:逐字符读取

方式二:使用read的重载方法,以数组的方式行读取

二、写出数据

 三、读写综合例子


一、读入数据

流程:

1.创建需要读取的TXT文件

2.创建File类对象

3.使用File类对象去初始化FileReader对象

4.根据返回值进行遍历

方式一:逐字符读取

    public static void main(String[] args)  {
        FileReader fr=null;
        try {
            File  f=new File("hello.txt");
            fr=new FileReader(f);
            int data;当返回值为-1时,证明已经读取完数据
            while (( data=fr.read())!=-1){
                //System.out.println(data);

                System.out.print((char)data);//将其转换为char字符输出
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            try {
                if(fr!=null){
                fr.close();//读完后应该关闭
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

方式二:使用read的重载方法,以数组的方式行读取

@Test
    public void show()  {
        FileReader fr=null;
        try {
            File f=new File("D:\\Java develop\\Program\\superior_Java\\hello.txt");
            fr=new FileReader(f);
            char []arr=new char[5];//每次读5个
            int len;//返回每一次读取的长度
            while((len=fr.read(arr))!=-1){
                for (int i = 0; i < len; i++) {//一定要用len,不可用arr.length,因为在数组进行取值时,是覆盖性操作
                    System.out.print(arr[i]);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                fr.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

结果:

二、写出数据

1.提供File类的对象

2.提供FileWriter的对象

3.执行write()方法

5.关闭流资源

@Test
    public void testWriter() throws IOException {
      File f=new File("D:\\Java develop\\Program\\superior_Java\\hello1.txt")  ;
      FileWriter fw=new FileWriter(f,false);//若为TRUE,则会进行覆盖
      fw.write("hello,Brandon Ingram.\n");
      fw.write("I am do boring something I dont like.\n");
      fw.write("I have a basketball dream.");
      fw.close();//流资源关闭
    }

结果:

 三、读写综合例子

 @Test
    public void testReadWrite() throws IOException {
        FileReader fr= null;
        FileWriter fw= null;
        try {
            File f1=new File("D:\\Java develop\\Program\\superior_Java\\hello1.txt");
            File f2=new File("D:\\Java develop\\Program\\superior_Java\\hello2.txt");
            fr = new FileReader(f1);
            fw = new FileWriter(f2);
            char []arr=new char[10];
            int len;
            while((len=fr.read(arr))!=-1){

                fw.write(arr,0,len);


            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {

            try {
                if(fw!=null)
                fr.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            try {
                if(fw!=null)
                fw.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

    }

(写完后才发现文档中的语法有些许不对,不要在意!!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,逐行读入写出文本文件比较常见,可以使用`BufferedReader`和`BufferedWriter`及其相应的包实现。 `BufferedReader`是一个输入流读取器,它可以读取字符流并缓冲以提高性能。使用`BufferedReader`,可以逐行读取文本文件。该位于`java.io`包中,使用前需要先进行导入。 `BufferedWriter`是一个输出流写出器,它可以向字符流中写入数据,并缓冲以提高性能。使用`BufferedWriter`,可以逐行向文本文件中写入数据。该也位于`java.io`包中,使用前需要进行导入。 以下是使用`BufferedReader`和`BufferedWriter`逐行读入写出文本文件的示例代码: 逐行读入文本文件: ``` try { BufferedReader reader = new BufferedReader(new FileReader("input.txt")); String line = ""; while ((line = reader.readLine()) != null) { // 对每一行进行处理 // ... } reader.close(); } catch (IOException e) { e.printStackTrace(); } ``` 逐行写出文本文件: ``` try { BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt")); String line = ""; while (/* 满足一定条件 */) { // 获取一行数据 // ... writer.write(line); writer.newLine(); // 换行 } writer.close(); } catch (IOException e) { e.printStackTrace(); } ``` 综上所述,`BufferedReader`和`BufferedWriter`Java中逐行读入写出文本文件的常用。使用这两个,可以方便地对文本文件进行逐行处理,并提高性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值