毕向东_Java基础视频教程第19天_IO流(18~19)
2024-08-30 10:32:23
第19天-18-IO流(流操作规律 - 1)
通过三个步骤来明确"流操作"的规律:
明确数据流的"源和目的"
源, 输入流: InputStream/Reader
目的, 输出流: OutputStream/Writer
明确操作的数据是否是纯文本
是, 字符流
不是, 字节流
通过设备来区分要使用哪个具体的类
源设备: 内存/硬盘/键盘
目的设备: 内存/硬盘/控制台
附录
是否需要进行缓冲:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
是否需要进行 "字符 - 字节" 以及charset的转换:
例如OutputStreamWriter(OutputStream out, String charsetName)
第19天-19-IO流(流操作规律 - 2)
package bxd; import java.io.*; public class TransStreamDemo2 { public static void main(String[] args) throws IOException {
method_5(); } // 将一个文本文件中的数据存储到另外一个文件中
public static void method_1() throws IOException {
BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt")); String line;
while ((line = bufr.readLine()) != null) {
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
} // 将键盘录入的数据保存到一个文件中
public static void method_2() throws IOException {
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt")); String line;
while ((line = bufr.readLine()) != null) {
if ("over".equals(line)) break;
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
} // 将键盘录入的数据保存到一个文件中, 并可以自定义目标文件的字符编码.
public static void method_3() throws IOException {
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d.txt"), "utf-8")); String line;
while ((line = bufr.readLine()) != null) {
if ("exit".equals(line)) break;
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
} // 练习1: 将一个图片文件中的数据存储到另外一个文件中
public static void method_4() throws IOException {
BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.png"));
BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("2.png")); int by;
while ((by = bufis.read()) != -1) {
bufos.write(by);
}
bufis.close();
bufos.close();
} // 练习2: 将一个文本文件的数据输出到控制台
public static void method_5() throws IOException {
BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)); String line;
while ((line = bufr.readLine()) != null) {
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
}
}
最新文章
- 在Activity中响应ListView内部按钮的点击事件
- Mysql乱码
- 【】五句话搞定JavaScript作用域
- 省市区(县)三级联动代码(js 数据源)
- android学习日记23--Android XML解析
- 17.2.1 Replication Implementation Details 复制实现细节:
- 给AVS添加描述(how to add a description to a video)
- openvswitch常用操作
- LintCode-编辑距离
- CSS的背景属性和边框属性
- oracle分析函数技术详解(配上开窗函数over())
- 关于Android自定义view 你所需要知道的基本函数
- mysql清空表
- 【原创】大数据基础之Spark(8)Spark中Join实现原理
- hash_hmac 签名
- 【zheng阅读系列】shiro权限管理
- 浅谈FFT、NTT和MTT
- Spring Boot 数据访问集成 MyBatis 与事物配置
- B1014. 福尔摩斯的约会
- 安装lr时无法将值Disable Script Debugger 写入注册表
热门文章
- dede发布内容限制违规词
- Zynq-7000 FreeRTOS(二)中断:PL中断请求
- python怎么解决用matplotlib画图时无法显示中文的问题或者出现方框的问题
- 【ORACLE】ORACLE session(会话)管理
- Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式、rpm方式和yum方式)
- TortoiseGit学习系列之Windows上本地代码如何通过TortoiserGit提交到GitHub详解(图文)
- rspec 笔记
- Java PrepareStatement
- WPF 自定义NotifyPropertyChanged
- 深度为君剖析CTO、技术总监、首席架构师的区别