首页 > 编程语言 >java中IO流字符的读入与写出操作

java中IO流字符的读入与写出操作

时间:2022-09-20 11:22:15浏览次数:59  
标签:fr java IO fw File printStackTrace 读入 catch new

import java.io.*;

import org.junit.Test;

public class FileReaderWriterTest {
    // 写
    @Test
    public void testWriter() {
        FileWriter fw = null;
        try {
            // 1.实例化File类的对象,指明要写出到的文件
            File file = new File("hello.txt");
            
            // 2.提供FileWriter的对象,用于数据的写出
            fw = new FileWriter(file);
            
            // 3.写出的操作
            fw.write("I have a dream");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fw != null) {
                // 4.关闭资源
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    // 读
    @Test
    public void testReader() {
        FileReader fr = null;
        try {
            // 1.实例化File类的对象,指明要操作的文件
            File file = new File("hello.txt");
            
            // 2.FileReader流的实例化
            fr = new FileReader(file);
            
            // 3.1读数据
            // read():返回读入的一个字符。如果文件末尾,返回-1
//            int data;
//            while ((data = fr.read()) != -1) {
//                System.out.print((char)data);
//            }
            // 3.2读数据
            char[] cbuf = new char[5];
            int len;
            while ((len = fr.read(cbuf)) != -1) {
                for (int i = 0; i < len; i++) {
                    System.out.print(cbuf[i]);
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fr != null) {
                // 4.关闭资源
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    // 读写
    @Test
    public void testReaderWriter() {
        
        FileReader fr = null;
        FileWriter fw = null;
        
        try {
            File file1 = new File("hello.txt");
            File file2 = new File("hello1.txt");            
            fr = new FileReader(file1);
            fw = new FileWriter(file2);
            
            // 读文件
            char[] cbuf = new char[5];
            int len;
            String str = "";
            while ((len = fr.read(cbuf)) != -1) {
                str = new String(cbuf, 0, len);
                System.out.print(str);
                // 复制文件写出到file2
                fw.write(str);
            }
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fw != null) {
                // 4.关闭资源
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fr != null) {// 加判断是防止空指针异常
                // 4.关闭资源
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

标签:fr,java,IO,fw,File,printStackTrace,读入,catch,new
From: https://www.cnblogs.com/lxh-daniel/p/16710421.html

相关文章

  • 基础 JavaScript 第 6 部分:If Else JavaScript
    基础JavaScript第6部分:IfElseJavaScript大家好,各位朋友,希望你们永远健康成功。这次我们将继续JavaScript教程,之前我们已经讨论过JavaScript中的运算符。在Jav......
  • 如何使用 JavaScript 在 Camunda 外部任务中使用瞬态变量
    你怎么做使用JavaScript的Camunda外部任务中的瞬态变量在本文中,让我们看看如何在使用java脚本实现Camunda外部任务的同时使用瞬态变量。先决条件:1.卡蒙达7.1......
  • cookie和session的区别
    1.cookie数据存放在客户端浏览器上,session数据存放在服务器上2.cookie不是很安全,别人可以分析存放在本地cookie并进行cookie欺骗,考虑到安全应当使用使用session3.session......
  • JavaScript 类型转换
    强制类型转换        -指将一个数据类型强制转换为其他的数据类型        -类型转换主要指,将其他的数据类型,转换为      ......
  • java FileInputStream的相对路径
    javaFileInputStream的相对路径是相对于src目录的publicvoidbufferTest(){try(FileChannelchannel=newFileInputStream("src/main/resources/data.txt").get......
  • Java中如何数组进行反转呢?
    下文笔者将讲述java代码数组反转的方法分享,如下所示:数组是我们日常开发中常用过的一种数据结构,那么我们如何将一个数组反转操作呢?下文笔者借助栈对象的先进后出的特性,......
  • 2022年9月19日 亲测可用Clion永久2022.2最新激活码 破解 账号一年 教育授权学生账号注
    正版激活,一人一码,告别破解(破解有代码风险!使环境运行变慢!)正版授权,一人一码:前往链接获取密码:rc9a官网授权,正版激活:支持Jetbrains家族下所有IDE绑定个人账号...密码:rc9a......
  • javascript中的运算符
     重点看带星号的1、===严格相等运算符,用作逻辑判断,为什么不用==呢? 第二条1=='1',解释器会将'1'转化称数字1然后再比较,结果就是true而第三条就是从类型和数值上比较......
  • pod内部java.net.UnknownHostException
    周日中午接应用电话,反馈有个应用异常,查看pod日志中,出现以下的报警java.net.UnknownHostException:channel-ndc-imp查看channel-ndc-imp服务,是正常的。尝试登录某个pod,n......
  • 【设计模式】Java设计模式 - 模板模式
    Java设计模式-模板模式......