java154-文件复制

简介: java154-文件复制
import javax.imageio.IIOException;
     import java.io.*;
     import java.util.Date;
     //字符输入流
     public class FileManagerChar {
         public static void readCharFile(File file){
             FileReader fileReader=null;//文本输入流
             if(file.exists()){
                 try {
                     fileReader = new FileReader( file );//基于目标存在的文本文档输出流
                     char[] chs=new char[50];//字符零时缓冲区
                     int count=0;//存储实际读取的字符数量
                     while((count=fileReader.read(chs,0,chs.length))!=-1){
                         String s=new String( chs,0,count );
                         System.out.println( s );
                     }
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         fileReader.close();
                     }catch(IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //使用文本缓冲流读取文件
         public static void useBufferReader(File file){
             FileReader read=null;//基于文件的普通输入流
             BufferedReader br=null;//基于某个reader建立的字符缓冲流
             if(file.exists()){
                 try {
                     read=new FileReader( file );//基于文件建立普通文本输入流
                     br=new BufferedReader( read );//基于某个read建立文本缓冲流
                     char[] chs=new char[25];
                     int count=0;
                     while ((count=br.read(chs,0,chs.length))!=-1){
                         String s=new String( chs,0,count );
                         System.out.println( s );
                     }
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         br.close();
                         read.close();
                         System.out.println( "关闭成功" );
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //字节输出流
         public static void binaryOutStream(String filePath){
             String str="start=E:\\BaiduNetdiskDownload\\baidu6\\1.mp4";
             byte[] bys=str.getBytes();//将字符串转换为字节数组
             OutputStream out=null;
             try {
                  out = new FileOutputStream( filePath);
                  out.write(bys);
             }catch (IOException e){
                 e.printStackTrace();
             }finally {
                 try {
                     out.close();
                     System.out.println( "资源关闭" );
                 }catch (IOException e){
                     e.printStackTrace();
                 }
             }
         }
         //使用字节缓冲输出流
         public static void useBufferedOutput(File file){
             OutputStream out=null;
             BufferedOutputStream bs=null;
             String str="日照香炉生紫烟,\n遥看瀑布挂前川。\n飞流直下三千尺,\n以适应河洛就停";
             byte[] bys=str.getBytes();
         if(file.exists()){
                 try {
                     System.out.println( file.getAbsolutePath() );
                     out = new FileOutputStream( file.getAbsoluteFile()+"/李白诗.doc" );
                     bs=new BufferedOutputStream( out );//基于某个outputstream建立缓冲输出流
                     bs.write( bys ,0,bys.length);//写入目标文件
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         bs.close();
                         out.close();
                     }catch (IOException e) {
                         e.printStackTrace();
                     }
                 }
             }
         }
         //字符输出流bufferwrite
         //file文件存储的目录
         //filename 文件名称
         //content 文件内容
         public static void useBufferedWriter(File fir,String fileName,String content){
             File file=null;
             Writer writer=null;
             BufferedWriter bw=null;
             if(fir.exists()){
                 file=new File(fir,fileName );
                 char chs[]=content.toCharArray();
                 try {
                     writer=new FileWriter( file );
                     bw=new BufferedWriter( writer );//基于Writer实例创建字符缓冲流
                     bw.write(chs);//将char型数组所有内容写入到目标文件中
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         bw.close();
                         writer.close();
                     }catch (Exception e){
                         e.printStackTrace();
                     }
                 }
             }else{
                 //创建目录后写入内容
                 System.out.println( "目标文件目录没找到" );
             }
         }
         //文件复制
         public static void copyFile(File target,File dir){
             InputStream in=null;
             OutputStream out=null;
             File copyFile=null;//目标写的文件对象
             if(target.exists()){//判断目标文件是否存在
                 if(!dir.exists()){
                     dir.mkdirs();//如果目标文件不存在,创建目录
                 }
                 try {
                     in = new FileInputStream( target );//基于文件建立输入流
                     String fileName=target.getName();//获取文件源名称
                     //避免文件重名
                     copyFile=new File(dir+"/"+new Date().getTime()+fileName);//基于目标写入文件对象
                     out=new FileOutputStream( copyFile );//基于目标文件建立输出流
                     byte[] bys=new byte[1024];//临时存储字节数据的缓冲区
                     int count=0;//记录读取内容的临时变量
                     while ((count=in.read(bys,0,bys.length))!=-1){
                         System.out.println( "文件赋值读写中,请稍后----" );
                         out.write( bys,0,count );//将临时缓冲区内容写入到目标文件中
                     }
                     System.out.println( "目标赋值完成" );
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         out.close();
                         in.close();
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //emp序列化对象
         //target//序列化对象的目标文件
         //java序列化,将员工对象保存到文件中
         public static void javaSer(Employeee emp,File target){
             OutputStream out=null;
             ObjectOutputStream oos=null;//序列化输出流
             if(emp!=null){
                 try {
                     out = new FileOutputStream( target );
                     oos = new ObjectOutputStream( out );
                     oos.writeObject( emp );//将序列化对象保存到文件中
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         oos.close();
                         out.close();
                     }catch (Exception e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //反序列化
         public static Employeee deser(File target) {
             InputStream in = null;
             ObjectInputStream ois = null;
             Employeee emp = null;
             if (target.exists()) {
                 try {
                     in = new FileInputStream( target );
                     ois = new ObjectInputStream( in );
                     //进行反序列化
                     Object obj = ois.readObject();
                     emp = obj != null ? (Employeee) obj : null;//如果不为空进行类型转换
                 } catch (IOException e) {
                     e.printStackTrace();
                 } catch (ClassNotFoundException e) {
                     e.printStackTrace();
                 }finally {
                     try {
                         ois.close();
                         in.close();
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
             return emp;//返回对象
         }
     }测试类
    import java.io.File;
     public class test99 {
         public static void main(String[] args){
             File target=new File( "E:/files2/歌谣.docx" );
             File dir=new File( "d:/files/" );
             FileManagerChar.copyFile(  target,dir);
         }
     }

image.png

相关文章
|
30天前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
|
1月前
|
Java
利用GraalVM将java文件变成exe可执行文件
这篇文章简明地介绍了如何使用GraalVM将一个简单的Java程序编译成exe可执行文件,首先通过javac命令编译Java文件生成class文件,然后使用native-image命令将class文件转换成独立的exe文件,并展示了如何运行这个exe文件。
51 0
利用GraalVM将java文件变成exe可执行文件
|
8天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
10天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
22 4
|
12天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
12天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
1月前
|
Java
用java搞定时任务,将hashmap里面的值存到文件里面去
本文介绍了如何使用Java的`Timer`和`TimerTask`类创建一个定时任务,将HashMap中的键值对写入到文本文件中,并提供了完整的示例代码。
34 1
用java搞定时任务,将hashmap里面的值存到文件里面去
|
22天前
|
Java
Java开发如何实现文件的移动,但是在移动结束后才进行读取?
【10月更文挑战第13天】Java开发如何实现文件的移动,但是在移动结束后才进行读取?
40 2
|
1月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
56 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
22天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
105 1