• JAVA IO——常用的类


     

     💟💟前言

    友友们大家好,我是你们的小王同学😗😗

    今天给大家带来的是JAVA IO——常用的类

    希望能给大家带来有用的知识

    觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐  评论📄

    小王的主页:小王同学🚗

    小王的gitee:小王同学🏩

    小王的github:小王同学💦

     InputStream:字节输入流

    InputStream抽象类是所有类字节输入流的超类

    InputStream常用的子类

    1. FileInputStream:文件输入流
    2. BufferedInputStream:缓冲字节输入流
    3. objectInputStream:对象字节输入流

     

     

     我们先在e盘创建hello.txt 里面写hello,world

    我们先按字符流读入文件

    1. @Test
    2. public void readFile01(){
    3. String filePath="e:\\hello.txt";
    4. int readData=0;
    5. java.io.FileInputStream fileInputStream=null;
    6. try {
    7. fileInputStream = new java.io.FileInputStream(filePath);
    8. while ((readData=fileInputStream.read())!=-1){从该输入流读取一个字节的数据。 如果没有输入可用,此方法将阻止。
    9. System.out.print((char) readData);
    10. }
    11. } catch (IOException e) {
    12. e.printStackTrace();
    13. } finally {
    14. try {
    15. //关闭文件流 释放资源
    16. fileInputStream.close();
    17. } catch (IOException e) {
    18. e.printStackTrace();
    19. }
    20. }

     如果我们往二进制里写文字的话 就会出现乱码

     

     所以如果是文本文件最好用字符流来~

    接下来 小王同学要用read(byt [] b)来读取文本

    1. @Test
    2. public void readFile02(){
    3. String filePath="e:\\hello.txt";
    4. int readData=0;
    5. //字符数组
    6. byte [] buf=new byte[8]; //一次读取8个字节
    7. java.io.FileInputStream fileInputStream=null;
    8. try {
    9. fileInputStream = new java.io.FileInputStream(filePath);
    10. while ((readData=fileInputStream.read(buf))!=-1){
    11. //从该输入流读取最多b.length字节的数据到字节数组。 此方法将阻塞,直到某些输入可用。
    12. //如果返回-1表示读取完毕
    13. //如果读取正常,返回实际读取的字节数
    14. System.out.print(new String(buf,0,readData)); //转成字符显示
    15. }
    16. } catch (IOException e) {
    17. e.printStackTrace();
    18. } finally {
    19. try {
    20. //关闭文件流 释放资源
    21. fileInputStream.close();
    22. } catch (IOException e) {
    23. e.printStackTrace();
    24. }
    25. }
    26. }

     这种是一次性读取8个字节 我们可以debug看看

     果然是一次性8个字节~

    如果readData=-1就表示读取完毕 

  • 相关阅读:
    关于C#.Net网页跳转的7种方法
    基于Python实现可变形深度人脸特征插值编解码网络
    php加密解密的用法(对称加密,非对称加密)
    华为云 存在不支持迁移的外键解决方法
    1. Flink程序打Jar包
    CommonAPI Core Runtime 交叉编译
    leetcode做题笔记166. 分数到小数
    【工具篇】Unity翻书效果的三种方式
    解决主机无法通过网络访问虚拟机的问题
    YOLOv8:官方项目训练
  • 原文地址:https://blog.csdn.net/weixin_59796310/article/details/126373187