java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}
IO异常处理
import java.io.*;
import java.nio.charset.Charset; /**
* @ClassName FileCopyTryCatchExample
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/17.
*/
public class FileCopyTryCatchExample {
public static void main(String[] args){
String srcPath = "C:\\Users\\ZHANGMINGDA\\Pictures\\康熙北巡.jpg";
String dstpath = "C:\\Users\\ZHANGMINGDA\\Pictures\\康熙北巡bak.jpg";
char[] tmpchars = new char[1024];
int readLength; // try(Reader fileReader = new FileReader(srcPath); Writer fileWriter = new FileWriter(dstpath)){
try(Reader fileReader = new MyFileReader(srcPath); Writer fileWriter = new MyFileWriter(dstpath)){
while ((readLength = fileReader.read(tmpchars)) != -1){
fileWriter.write(tmpchars,0,readLength);
}
// fileReader.close();
// fileWriter.close();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally {
System.out.println("done");
}
}
//测试try(构建流)语句是否自动关闭流,重写FileReader和FileWriter
public static class MyFileReader extends FileReader{ public MyFileReader(String fileName) throws FileNotFoundException {
super(fileName);
} public MyFileReader(File file) throws FileNotFoundException {
super(file);
} public MyFileReader(FileDescriptor fd) {
super(fd);
} public MyFileReader(String fileName, Charset charset) throws IOException {
super(fileName, charset);
} public MyFileReader(File file, Charset charset) throws IOException {
super(file, charset);
} @Override
public void close() throws IOException {
super.close();
System.out.println("关闭了输入流");
}
} public static class MyFileWriter extends FileWriter { public MyFileWriter(String fileName) throws IOException {
super(fileName);
} public MyFileWriter(String fileName, boolean append) throws IOException {
super(fileName, append);
} public MyFileWriter(File file) throws IOException {
super(file);
} public MyFileWriter(File file, boolean append) throws IOException {
super(file, append);
} public MyFileWriter(FileDescriptor fd) {
super(fd);
} public MyFileWriter(String fileName, Charset charset) throws IOException {
super(fileName, charset);
} public MyFileWriter(String fileName, Charset charset, boolean append) throws IOException {
super(fileName, charset, append);
} public MyFileWriter(File file, Charset charset) throws IOException {
super(file, charset);
} public MyFileWriter(File file, Charset charset, boolean append) throws IOException {
super(file, charset, append);
} @Override
public void close() throws IOException {
super.close();
System.out.println("关闭了输出流");
}
}
}

java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}的更多相关文章
- java 输入输出IO流 字符流 FileWriter FileReader
为什么要使用字符流 当使用字节流读取文本文件时,可能会有一个小问题.就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储.所以Java提供一些字符流类,以字符为单位读写 ...
- IO流的异常处理
在IO流的异常处理时应该注意以下几点: 1.在外边建立引用,在Try内进行初始化(FileWriter fw = null;) 2.文件的路径使用必须是双斜杠,转义(fw = new FileWrit ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- java IO输入输出流中的各种字节流,字符流类
字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...
- java 输入输出 io
学习JAVA 输入输出篇 java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象.常用的类有BufferedReader,Scanner.实例程序:一,利用 Scanner ...
- Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)
第一讲 File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不 ...
- JAVA里面的IO流(一)分类2(节点流和处理流及构造方法概要)
IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方 ...
- JAVASE02-Unit08: 文本数据IO操作 、 异常处理
Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.i ...
- IO流----File,递归,字节流,字符流
要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作. 当把持久设备上的数据读 ...
随机推荐
- Springboot .properties或.yml配置文件读取pom.xml文件值
有时候配置文件需要读取pom文件配置<properties></properties>中间自定义属性值的时候可以用@@获取 例:@package.parameter@ 然后还需 ...
- BehaviorTree.CPP.行为树XML格式(六)
The XML format XML模式的基础 在第一个教程中,介绍了这个简单的树. <root main_tree_to_execute = "MainTree" > ...
- 洛谷 P5643 - [PKUWC2018]随机游走(Min-Max 容斥+FWT+树上高斯消元,hot tea)
题面传送门 一道挺综合的 hot tea,放到 PKUWC 的 D2T2 还挺喜闻乐见的( 首先我们考虑怎样对一个固定的集合 \(S\) 计算答案,注意到我们要求的是一个形如 \(E(\max(S)) ...
- KVM原理
虚拟化是云计算的基础.简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU.内存.IO 硬件资源,但逻辑上虚拟机之间是相互隔离的.物理机我们一般称为宿主机(Host), ...
- DRF知识点总结
1. Web API接口 2. Restful接口规范 RDF请求流程及主要模块分析
- CAS简介
概念 CAS(Compare And Swap 比较并交换),是 乐观锁 的一种典型实现机制. 乐观锁主要的两个步骤:冲突检测.数据更新. 当多个线程尝试使用CAS同时更新通过一个变量的时候,只有一个 ...
- 17. yum
https://www.linuxidc.com/Linux/2015-04/116331.htm
- Spark(十三)【SparkSQL自定义UDF/UDAF函数】
目录 一.UDF(一进一出) 二.UDAF(多近一出) spark2.X 实现方式 案例 ①继承UserDefinedAggregateFunction,实现其中的方法 ②创建函数对象,注册函数,在s ...
- CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制
机器信息 192.168.119.129 主 192.168.119.128 从 配置host[两台机器] vim /etc/hosts 添加 192.168.119.129 rocketmq-nam ...
- 【STM32】基于正点原子『探索者』开发板的烧录
项目需要一个功能,开发板范例正好有,就买了一块,不过还是有点贵 我手边没有J-Link 用的都是串口烧录 烧录时,先打开右上的开关 如果是仿真器烧录,它无法供电,需要接12V适配器或是杜邦线供电 然后 ...