2016-9-61批量给文件名的前面加上“igeek_高薪就业” 2利用FileInputStream和FileOutputStream复制文件

Posted 代码改变生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016-9-61批量给文件名的前面加上“igeek_高薪就业” 2利用FileInputStream和FileOutputStream复制文件相关的知识,希望对你有一定的参考价值。

在此只列出典型题目,有的题目扫一眼就有代码的不去浪费时间了,想要完整题目的评论留邮箱,看到就发.持续更新中...

1、批量给文件名的前面加上“igeek_高薪就业”

package com.work;

import java.io.File;

public class Work0906 {
    
    public static void main(String[] args) {
        //1、批量给文件名的前面加上“igeek_高薪就业”
        String path = "D:/wkexp/extjs";
        String newName = "igeek_高薪就业";
        File[] files = new File(path).listFiles();
        
        rename(files,newName);
    }
    
    public static void rename(File[] files,String newName){
        if(files==null)
            return;
        for(int i=0;i<files.length;i++){
            //System.out.println("getParent  "+files[i].getParent());
            //System.out.println("getPath  "+files[i].getPath());
            //System.out.println("getAbsolutePath  "+files[i].getAbsolutePath());
            //System.out.println("getName  "+files[i].getName());
            //System.out.println(files[i].getAbsolutePath().lastIndexOf(File.separator));//File.separator与系统有关的默认名称分隔符。
            
            //父目录 其实都多余
            String path = files[i].getAbsolutePath().substring(0,files[i].getAbsolutePath().lastIndexOf(File.separator));
            //System.out.println("path  "+path);
            //为文件的情况
            if(files[i].isFile() && files[i].exists()){
                //获取文件后缀名(非文件夹)设置起始点为0可以获取文件名(去后缀),写在这儿吧,实际用不到 其实都多余
                //String extension = files[i].getName().lastIndexOf(".")!=-1?files[i].getName().substring(files[i].getName().lastIndexOf(".")):"";
                //System.out.println(files[i].getName());
                //创建新的文件替换原来的文件
                files[i].renameTo(new File(path+"/"+newName+files[i].getName()));
            }
            //目录的情况暂时不考虑,思路是复制目录下所有的文件,但是应该有更简洁的办法
        }
        
    }
}

 

写下来竟然也花了半个小时的时间,出乎意料,主要开始想的太多了,本想分成文件和文件夹2中形式,再将文件名拆分成前缀和后缀,忘记有renameTo这个方法了,不过也好这样对文件目录的操作又熟悉了,下次2分钟搞定,

果然还是要先有思路,自己能想到有可能的快捷封装方法,前人必定也想到了,哈哈

2、利用FileInputStream和FileOutputStream复制文件

public static void copy() throws Exception{
        String goalName = "copy.txt";
        FileInputStream fis = new FileInputStream(new File("D:/wkexp/extjs/igeek_高薪就业igeek_高薪就业igeek_高薪就业CSXY.txt"));
        FileOutputStream fos = new FileOutputStream(new File("D:/wkexp/extjs/copy.txt"));
        byte[] buff = new byte[512];//我直接用了字节数组,已经知道2者性能
        
        int len=0;
        //FileInputStream read方法达到文件尾返回-1
        while((len = fis.read(buff))!=-1){
            fos.write(buff, 0, (int) len);
        }
        fos.flush();
        fos.close();
        fis.close();
    }

这个到时很快,5分钟刚搞定,共能实现,就这样吧,顺便扫了一眼api文档,还是有东西会遗忘的,熟练度啊熟练度,果然不写就忘

 

 

以上是关于2016-9-61批量给文件名的前面加上“igeek_高薪就业” 2利用FileInputStream和FileOutputStream复制文件的主要内容,如果未能解决你的问题,请参考以下文章

怎么给批量文件加序号

用Python批量重命名文件

linux如何在所有文件名前面加上序列号

如何批量在多个文件前面添加名称或者数字?

在excel中如何给一列数据批量加上双引号

如何excel在数字后批量加上逗号