最近看到一个个bug一个图片无法实现复制,代码是这样的
package demo.demo18.Test;
import java.io.*;
public class test1 {
public static void main(String[] args) throws IOException {
try ( //需求:复制照片
//1.创建一个字节输入流管道与源文件接通
InputStream is = new FileInputStream(“C:\Users\Administrator\Desktop\壁纸.jpg”);
//2.创建一个字节输出流管道与目标文件接通
OutputStream os = new FileOutputStream(“C:\Users\Administrator”);
){
//3.创建一个字节数组,负责转移字节数据
byte[] bytes = new byte[1024]; //1kb
//4.从字节输入流中读取字节数据,写出去到字节输出流中。读多少写出去多少
int len; //记住每次读取了多少个字节
while ((len = is.read(bytes)) != -1){
os.write(bytes,0,len);
}
System.out.println(“复制完成”);
}catch (Exception e){
e.printStackTrace();
}
//??为什么E:\拒绝访问
}
}
上边显式数据复制无权访问
至于为什么会这样,一时间也蒙了,这一段光顾着整理数据库没想到是代码的问题以为是创建文件的权限够,查看电脑发现文件都是只读模式试了很多次也无法改变这个这个显式只读模式
尝试了改权限什么操作都是这样,于是我从新查看代码发现如果是创建图片应该给创建的图片命名,直接让文件夹里边自己创建有点难为java代码了具体写法应该是
OutputStream os = new FileOutputStream(“C:\Users\Administrator”); 在这一行加入你要生成·的图片的名称(注意:图片格式一定要对应)
OutputStream os = new FileOutputStream(“C:\Users\Administrator\复制.jpg”);由于我的电脑没有对应的图片我就用了一张png图片演示
在我电脑上边有一个图片.png我们把他保存在 D:\test\boss.png
我在D盘建一个test文件夹 看看是能不能成功复制
我的源代码是上边做了一个稍微的改动
package twest;
import java.io.*;
/**
-
@author 司文秦瘦
-
@create 2024/1/2
*/
public class test1 {
public static void main(String[] args) throws IOException {
try ( //需求:复制照片
//1.创建一个字节输入流管道与源文件接通
InputStream is = new FileInputStream(“C:\Users\Administrator\Desktop\图片1.png”);
//2.创建一个字节输出流管道与目标文件接通
OutputStream os = new FileOutputStream(“D:\test\boss.png”);
){
//3.创建一个字节数组,负责转移字节数据
byte[] bytes = new byte[1024]; //1kb
//4.从字节输入流中读取字节数据,写出去到字节输出流中。读多少写出去多少
int len; //记住每次读取了多少个字节
while ((len = is.read(bytes)) != -1){
os.write(bytes,0,len);
}System.out.println("复制完成");}catch (Exception e){e.printStackTrace();}//??为什么E:\\拒绝访问
}
}
上边代码执行完之后发现文件已经被成功的创建了,那么我们进一步探讨一下如果没有test文件夹失败否会创建一个test文件夹在创建图片呢?
现在发现没有权限那么要创建文件我们就要再写另外的代码。
至于文件显示只读权限的问题到现在还未解决,有懂得朋友可以交流一下。