java 文件拷贝
需求:源和目标!
那么我们需要源文件和目标文件!
构建管道的时候就需要两个:输出流和输入流管道!
Eg:
package july7file;
//java7开始的自动关闭资源
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo8 {
public static void main(String[] args) throws IOException {
File src = new File("E:/自荐信.doc");
File tar = new File("E:/自荐信1.doc");
copy(src, tar);
System.out.println("Well done !");
}
public static void copy(File src, File tar) throws IOException {
try (InputStream is = new FileInputStream(src);
OutputStream os = new FileOutputStream(tar);) {
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) != -1) {
os.write(b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
题目:复制图片!
package july7file;
/**
* 文件的复制!对于本题而言,因为是图片,所以要想读出来,必须使用字节流!
* 字符流必须关闭资源,而字节流可以不关闭资源!但是还是建议全部的关闭,因为也不会出错,这是关闭资源的习惯!
* 另外:最常用的是字节流,因为字节流在内存中不需要缓冲区,图片,mp3等都是字节流!但是对于文字的话还是字符流比较好;
* 因为字符流可以避免在字节流操作文字时出现的乱码现象(正好读取到了自定义缓冲区的分割处);
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo7 {
public static void main(String[] args) throws Exception {
File src = new File("D:/java.jpg");
File tar = new File("D:/meinv.jpg");
copy(src,tar);
System.out.println("复制完成!");
}
public static void copy(File src,File tar) throws Exception{
/* Reader r = new FileReader(src);
Writer w = new FileWriter(tar);*/
/*if(!src.exists()){
throw new Exception("对不起,源文件不存在!");
}*/
InputStream in = new FileInputStream(src);
OutputStream os = new FileOutputStream(tar);
byte []c = new byte[1024];
int len;
while((len = in.read(c)) != -1){
os.write(c);
}
/* w.close();
r.close();*/
}
}
我的总结:对于图片的复制,可以使用字符流,但是这样的话文件可以复制成功但是无法读取!
相关文章
- java集合TreeMap应用---求一个字符串中,每一个字母出现的次数
- hadoop中datanode无法启动,报Caused by: java.net.NoRouteToHostException: No route to host
- java中反射机制通过字节码文件对象获取字段和函数的方法
- Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
- java实现手机尾号评分
- 安卓逆向7,frida小练习,hook java 层密码校验函数,绕过密码验证,进入下一个界面
- 【JAVA】 04-Java中的多线程
- Java字节码(.class文件)格式详解(三)
- java幂等性的解决方案
- 【JAVA】格式化打印printf的使用
- Atitit java播放器调音速率快慢的实现 目录 1.1. 原理 本质上是改变采样率即可1 2. 使用Java增加/降低AudioInputStream的音频播放速度(Increase/dec
- Atitit java ftp client sumup apache common net jar 1.1. 协议解析1 1.2. 读取文件1 2. }3 1. 下载文件 ftpCli
- Atitit,通过pid获取进程文件路径 java php c#.net版本大总结
- paip.powerdesign cdm pdm文件 代码生成器 java web 页面 实现
- paip.powerdesign cdm pdm文件 代码生成器 java web 页面 实现
- 如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
- java调用python3
- Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法
- java读取xml文件
- JAVA编程:java环境安装和helloworld
- java中的transient 详细总结Java中transient关键字 对象写出流ObjectOutputStream 对象写入流ObjectInputStream
- java中反射机制通过字节码文件对象获取字段和函数的方法
- Java-idea-mybatis plugin插件使用
- java-信息安全(十二)-数字证书、CA证书【Java证书体系实现】
- JAVA学习第十九课(java程序的异常处理 (二))
- Java原型模式之基础
- Java开发技术之成为高级java工程师必须学习的三个技术
- Java 集合框架
- Spark读取本地文件时报错:java.io.FileNotFountException:file doesn't exist
- Java 线程池详解
- Android 怎么快速查看xml文件被调用的哪个java文件
- Java Swing文本编辑器的实现
- 【java】Java 接口(Interface)