java对文本类二进制文件的读写操作(一步一步超详细)

关于Java二进制读写文件的学习和个人总结

知识储备

1、什么是二进制文件?

   广义上来说一切文件都是二进制文件,狭义上来说采用非字符编码集的二进制文件才是二进制文件,比如视频图片和音乐文件等等。
   今天总结的是字符型编码的二进制文件读写,文本文件.txt的读写

2、读取文件所需要的包和类

   读取文件需要用到java.io这个和文件读取有关的包,读取文本文件需要用到如下各类:

  1. FileInputStream(节点类):直接操作文件的类,将数据从文件读取到java中
  2. InputStreamReader(转换类):字节到字符间转换的类,将读取进来的二进制数据转换成java能理解的字符
  3. BufferedReader(修饰类):缓存数据流,提高读取效率
3、写入文件所需要的包和类

   读取文件需要用到java.io这个和文件读取有关的包,写入文本文件需要用到如下各类:

  1. FileOutputStream(节点类):直接操作文件的类,将java中的数据写入到文件中
  2. OutputStreamWriter(转换类):字符到字节间转换的类,将java中获取到的字符转换成文件能够写入的二进制数据
  3. BufferedWriter(修饰类):缓存数据流,提高写入效率

代码展示

1、写入文本文件代码展示

写入文件代码:

package IO;

import java.io.*;

public class WriteTest {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos=null;   //节点类
        OutputStreamWriter osw=null;  //字符类
        BufferedWriter bw=null;   //装饰类
        fos=new FileOutputStream("D:/temp/hello.txt");//传入文件所在路径
        osw=new OutputStreamWriter(fos,"UTF-8"); //将fos作为参数传入osw,并且设置字符编码
        bw=new BufferedWriter(osw);
        try {
            bw.write("我是瓶子中的玉米");
            bw.newLine();  //换行
            bw.write("我喜欢学习java");
            bw.newLine();
            System.out.println("文本写入成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally{
            bw.close();  //涉及到IO流操作的时候一定要记得关闭文件,关闭最外层流即可关掉所有的流
        }
    }
}
2、读取文本文件代码展示

读取文件代码:

package IO;

import java.io.*;

public class ReadTest {
    public static void main(String[] args) throws IOException {
            FileInputStream fis=null;  //节点类
            InputStreamReader isr=null; //转换类
            BufferedReader br=null;  //装饰类
        fis= new FileInputStream("D:/temp/hello.txt");  //填写读取文件所需要的路径
        isr= new InputStreamReader(fis,"UTF-8");  //传入fis 并且设置字符编码 ,需要与写入文件时候的编码相同
        br=new BufferedReader(isr); 
        String text;
        try {
            while ((text=br.readLine())!=null)
            {
                System.out.println(text);  //输出每次读取到的行数据
            }
            } catch (IOException e) {
                e.printStackTrace();
            }
        finally {
            br.close();  涉及到IO流操作的时候一定要记得关闭文件,关闭最外层流即可关掉所有的流
        }
        }
    }



总结反思

1、java进程和文件管理的OS系统属于平行的两个系统,两个系统交流需要调用java下的io包来作为桥梁
2、java在文件读写的时候,有时候会收到操作系统提示权限不够的错误,要注意读写文件的位置
2、除了上述用到的类以外,java下的io包还提供了丰富的类包用于数据操作,具体可以查询java的API文档
3、除文本文件的读写外,还有二进制文件的读写,其使用方法和文本文件读取操作类似
4、文件读取在之后的java学习中会广泛应用,如java网络编程 和java web项目开发中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值