毕向东_Java基础视频教程第19天_IO流(18~19)
第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();
}
}
毕向东_Java基础视频教程第19天_IO流(18~19)的更多相关文章
- 毕向东_Java基础视频教程第20天_IO流(7~10)
第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static vo ...
- 毕向东_Java基础视频教程第21天_IO流(1)
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有 ...
- 毕向东_Java基础视频教程第20天_IO流(15~17)
第20天-15-IO流(打印输出流) 打印输出流:PrintWriter与PrintStream 两者的区别:Since JDK 1.4 it's possible to specify the ch ...
- 毕向东_Java基础视频教程第20天_IO流(11~14)
第20天-11-IO流(Properties简述) .properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名.它们也可以存储用于国际化和本地化的字符串,这种文 ...
- 毕向东_Java基础视频教程第20天_IO流(5~6)
第20天-05-IO流(文件列表一) static File[] listRoots() List the available filesystem roots. String[] list() Re ...
- 毕向东_Java基础视频教程第20天_IO流(1~4)
第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件 ...
- 毕向东_Java基础视频教程第19天_IO流(01~05)
第19天-01-IO流(BufferedWriter) 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类缓冲区要结合流才可以使用. BufferedWriter BufferedReade ...
- 毕向东_Java基础视频教程第19天_IO流(06~10)
第19天-06-IO流(装饰设计模式) 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么这个自定义的类称为装饰类. 装饰类通常会通过 ...
- 毕向东_Java基础视频教程第19天_IO流(11~14)
第19天-11-IO流(字节流File读写操作) import java.io.FileInputStream; import java.io.FileOutputStream; import jav ...
- 毕向东_Java基础视频教程第19天_IO流(20~22)
第19天-20-IO流(改变标准输入输出设备) static void setIn(InputStream in) Reassigns the "standard" input s ...
随机推荐
- Mac 10.12搭建OpenVPN服务器以及客户端的使用
说明:我未实践,大概就是这几个步骤,建议服务器在Linux下搭建效果会更好. 1.用brew下载openvpn brew install openvpn 2.命令行输入 openvpn --versi ...
- PHP之string之str_word_count()函数使用
str_word_count (PHP 4 >= 4.3.0, PHP 5, PHP 7) str_word_count - Return information about words use ...
- 错误:‘lock_guard’ 在此作用域中尚未声明
解决:修改报错文件,加入#include <boost/thread/lock_guard.hpp>
- 服务器php启动
php.ini放在--with-config-file-path设置路径下lib文件夹中才找的到!!!! fpm的配置文件需要放在这个位置/usr/local/etc/php-fpm.conf,暂时不 ...
- 使用HTML+CSS实现鼠标划过的二级菜单栏
先上效果图: 1.鼠标没在上面 2.鼠标放在一级菜单上,展开二级菜单 3.鼠标放在二级菜单上 代码: (点击此处预览代码效果) <html> <head> <title& ...
- Mysql查询今天、昨天、7天、近30天、本月、上一月数据
今天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- JVM垃圾回收机制总结
对于垃圾回收机制我先抛出三个问题: ①哪些内存需要回收? ②什么时候回收? ③如何回收? 下面我们主要针对这三个问题来研究JVM GC 一.哪些内存需要回收? 1.JAVA使用可达性分析法来判断对象是 ...
- 最新的 Vue 相关开源项目库汇总
优秀的vue 开源后台管理开源系统框架 https://panjiachen.github.io/vue-element-admin-site/#/zh-cn/README UI组件 开发框架 实用库 ...
- vmware8~12最新版本 克隆Centos6.X 系列虚拟机网卡无法启动问题 (三步即可)
1.因工作或者学习需要,都需要在VM上克隆一台服务器,此时无论是快捷克隆(相当于快照的机体)或者完整克隆,都会碰到IP问题. 如:创建后症状:启动之后使用ifconfig,发现无ip地址,只有回环地址 ...
- JavaScript的原型链继承__propt__、prototype、constructor的理解、以及他们之间相互的关系。
回想自己已经工作了有一段时间了,但是自己对JavaScript的原型链.和继承的理解能力没有到位,最近他们彻底的整理并且复习了一遍. 本案例中部分文案来自网络和书籍,如有侵权请联系我,我只是把我的理解 ...