当前位置: 首页 > news >正文

六、Java—IO流

1. File类的作用

File类对象可封装要操作的文件,可通过File类的对象对文件进行操作,如查看文件的大小、判断文件是否隐藏、判断文件是否可读等。

局限:File类的相关操作,并不涉及文件内容相关的操作,这是单独依靠File类对象无法实现的操作,此时需要借助I/O流完成。

2. I/O流的作用

生活案例来引入I/O流的作用

要将A桶里面的水导入到B桶中,中间可以利用一根水管。A桶中的水流向B桶,对于A桶来说,水流往外出,对于B桶来说,水流往里进。对于文件内容的操作同理。

将I/O流理解为一根“管子”,那么理解就会非常顺畅。I为Input,O为Output,I/O流即输入输出流,可以理解为两个流向的”管子“。

3. I/O流的分类

方式1:按照方向划分

输入流、输出流

方式2:按照处理单元划分

字节流、字符流

方式3:按照功能划分

节点流、处理流

4. I/O流的体系

分类字节输入流字节输出流字符输入流字符输出流
抽象基类InputStreamOutputStreamReaderWriter
访问文件FileInputStreamFileOutputStreamFileReaderFileWriter
访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
访问字符串StringReaderStringWriter
缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
转换流InputStreamReaderOutputStreamWriter
对象流ObjectInputStreamObjectOutputStream
FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
打印流PrintStreamPrintWriter
推回输入流PushbackInputStreamPushbackReader
数据流DataInputStreamDataOutputStream

输入字符流:

/*** 功能:读取文件的内容*/
public class Test {public static void main(String[] args) throws IOException {//对文件进行操作,必须将文件封装为具体的File类的对象:File f = new File("test.txt");//"管子"=流=输入字符输入流(将这个管子怼到文件上-管子和文件结合)FileReader fr = new FileReader(f);//开始动作-"吸"
//        int n1 = fr.read();
//        System.out.println(n1);
//        int n2 = fr.read();
//        System.out.println(n2);
//        int n3 = fr.read();
//        System.out.println(n3);
//        int n4 = fr.read();
//        System.out.println(n4);
//        int n5 = fr.read();
//        System.out.println(n5);
//        int n6 = fr.read();
//        System.out.println(n6);int n = fr.read();while (n!=-1){ //-1表示文件末尾,什么时候n的结果是-1那么循环就停止了System.out.println(n);n = fr.read();}//流关闭操作:fr.close();}
}

输出字符流:

/*** 功能:将程序中的内容输出到文件中去*/
public class Test02 {public static void main(String[] args) throws IOException {//程序中的字符串:String str = "efg你好";//文件:File f = new File("demo.txt");//字符输出流FileWriter fw = new FileWriter(f);//动作:输出:fw.write(str);//流关闭:fw.close();}
}

http://www.dtcms.com/a/389889.html

相关文章:

  • 数据库 事务隔离级别 深入理解数据库事务隔离级别:脏读、不可重复读、幻读与串行化
  • 从“纸面”到“人本”:劳务合同管理的数字化蜕变
  • ARM架构——学习时钟7.2
  • VS Code 调试配置详解:占位符与语言差异
  • 锁 相关知识总结
  • caffeine 发生缓存内容被修改以及解决方案-深度克隆
  • rust编写web服务06-JWT身份认证
  • 《怪猎:荒野》制作人:PC平台对日本游戏非常重要
  • 大模型训练框架(二)FSDP
  • MySQL——系统数据库、常用工具
  • 蓝桥杯题目讲解_Python(转载)
  • 性能测试监控实践(九):性能测试时,监控docker微服务资源利用率和分析
  • TCP,UDP和ICMP
  • Python语法学习篇(七)【py3】
  • 网页控制鼠标 查看鼠标位置
  • PIT 定时器
  • 【题解】 [蓝桥杯 2019 省 B] 特别数的和
  • 数字隔离器,串口通信的安全之“芯”
  • 山脊图 (Ridgeline Plot):使用 joypy 库,优雅地比较多组数据的分布情况
  • Linux 进程同步以及僵尸进程等知识介绍
  • Python进程和线程
  • 斐波那契数列的递归和迭代实现
  • 时空预测论文分享:规则知识 因果预测框架 面向研究的评估体系 主动适应漂移
  • 《WINDOWS 环境下32位汇编语言程序设计》第18章 ODBC数据库编程
  • linux入门(3)
  • 任意版本GitLens vscode插件破解邪修秘法
  • Redis最佳实践——热点数据缓存详解
  • font简写和CSS的继承性
  • 高性能服务器配置经验指南6——BIT校园网在ubuntu中的自动检查连接状况脚本使用
  • SQL 连接详解:内连接、左连接与右连接