Java从零开始学三十六(JAVA IO- 字符流)
一、字符流
二、对文本文件的读写
2.1、字符输入流
2.2、字符输出流
2.3、综合使用
package com.pb.io.buffered;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;public class BufereTest { /*BufferedWriter* 1.需要修饰到一个指定的输出流(例如:FileWriter)还可以是其它的* 2.BufferedWriter会覆盖原有文件内容* 3.需要清空缓冲区,使用flush()方法* BufferedReader* 1.需要修饰到一个指定的输入流(例如:FileReader)还可以是其它的* 2.关闭流*/public static void main(String[] args) {/** BufferedWriter写操作*/try {//1.创建文件输出流FileWriterFileWriter fw=new FileWriter("d:/test/test.txt"); //这里没有加true,是清空文件重新写入,可以加入true//2.实例化。BufferedWriter对象包装类BufferedWriter bw=new BufferedWriter(fw);//3.写入内容bw.write("大家好!");bw.write("我要修改内容了");bw.newLine(); //换行bw.write("哈哈,我修改完了!");bw.newLine();//4.清空缓冲区 bw.flush();//5.关闭流 bw.close();fw.close();System.out.println("==========写入文件结束======");} catch (IOException e) {e.printStackTrace();}/** BufferedReader读文件*/try {//1.声明文件读取对象FileReader fr=new FileReader("d:/test/test.txt");//2.声明BufferedRead对象BufferedReader br=new BufferedReader(fr);//3.开始读取文件System.out.println("========开始读取文件========");String date;while((date=br.readLine())!=null){System.out.println(date);}System.out.println("========读取文件结束========");//4.关闭流 br.close();fr.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
结果:
==========写入文件结束====== ========开始读取文件======== 大家好!我要修改内容了 哈哈,我修改完了! ========读取文件结束========
三、字节-字符转换流
- OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
- InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
例1.实现文本文件的复制
s1.txt内容明月几时有, 把酒问青天, 不知道天上宫阙, 今夕是何年。
package com.pb.io.buffered;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;/** 实现文本文件的复制*使用BufferedReader和BufferedWriter来实现*/ public class BuffereDemo1 {public static void main(String[] args) {try {//1.声明BufferedReader和BufferedWriter对象InputStreamReader isr=new InputStreamReader(new FileInputStream("d:/test/s1.txt"), "GB2312"); //解决中文乱码//FileReader fr=new FileReader("d:/test/s1.txt"); BufferedReader br=new BufferedReader(isr);OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d:/test/s2.txt"),"GB2312");//FileWriter fw=new FileWriter("d:/test/s2.txt"); //s2并不存在,会自动创建BufferedWriter bw =new BufferedWriter(osw);//2.开始读取文件String line; //声明变量用来用来存放读出的内容int num=1;//用来记录行数while((line=br.readLine())!=null){System.out.println("=========正在读出第"+num+"行===========");System.out.println(line);System.out.println("=========正在写入第"+num+"行===========");bw.write(line);num++;}System.out.println("======文件写入结束========");//清空缓冲区 bw.flush();//关闭输出流 bw.close();osw.close();System.out.println("======文件读取结束========");//关闭输入流 br.close();isr.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
Java从零开始学三十六(JAVA IO- 字符流)相关推荐
- Java Review(三十六、IO)
文章目录 File 类 访问文件和目录 1.访问文件名相关的方法 2. 文件检测相关的方法 3. 获取常规文件信息 4. 文件操作相关的方法 5. 目录操作相关的方法 文件过滤器 IO流概览 流的分类 ...
- python123 io平台-Java Review(三十六、IO)
Java 的 IO 通过 java.io 包下的类和接口来支持, 在 java.io 包下主要包括输入. 输出两种 10 流, 每种输入. 输出流又可分为字节流和字符流两大类. 其中字节流以字节为单位 ...
- Java从零开始学四十六(Junit)
一.软件测试 软件开发: 项目调研--需求分析--软件设计--程序编码--软件测试--运行维护 软件测试:利用测试工具按照测试方案和流程对产品进行功能和性能测试,使用人工或者自动手段来运行或测试某个系 ...
- Java从零开始学四十五(Socket编程基础)
一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...
- Java多线程学习三十六:主内存和工作内存的关系
CPU 有多级缓存,导致读的数据过期 由于 CPU 的处理速度很快,相比之下,内存的速度就显得很慢,所以为了提高 CPU 的整体运行效率,减少空闲时间,在 CPU 和内存之间会有 cache 层,也就 ...
- Java从零开始学三(public class和class)
使用public class和class声明的区别 public class文件名称必须与类名称一致 class文件名称可以与类名称不一致 转载于:https://www.cnblogs.com/li ...
- Java学习笔记二十六:Java多态中的引用类型转换
Java多态中的引用类型转换 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换: 2.向下类型转换(强制类型转换),是大类型到小类型的转换: 3.instanceof运算 ...
- 教妹学Java(三十六):Java 多态的好处
你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...
- 三十六、Java集合中的HashMap
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
最新文章
- git操作手册_基本的Git手册
- 一句代“.NET技术”码实现批量数据绑定[上篇]
- java 文件字节流_Java:文件字符流和字节流的输入和输出
- Linux——进程间通信(总结)
- 关于Layout Weight一些使用技巧
- Delphi编程修改ProgressBar的颜色
- office2007右键doc,xls
- Git 的BUG小结
- 线代中最基础的两种玩法
- Oracle的三种高可用集群方案
- 当出现opencv的.dll无法找到的问题的时候用一下处理方法
- 它!5 年代替狂卷的 CNN!
- visio阵列_用Visio2010制作最专业的技术流程图教程
- 【2020】【论文笔记】相变材料与超表面——
- rfid破解 BLE Hacking
- ThreeJs 数据可视化学习扫盲
- “我明白”, “I Understand”的其他英语表达方式
- MySQL数据库的高级SQL语句
- java我的世界教学视频,快来看鸭~
- python处理skl参数、ubuntu下翻译选中文字