在工程目录中有四个文件 pp_user.csv ;  pp_items.sql ;  pp_items_cate.sql ; pp_like_list.sql;
如何复制他们的内容到同目录下的四个同名txt文件中,即 pp_user.csv 复制到 pp_user.txt 中 ,pp_items.sql 复制到pp_items.txt 中,其它文件类似复制一个文件我会,要复制四个,就得重复的写四遍相同的代码,想请问下,有没有比较简单的办法,可以一下子搞定4个文件

解决方案 »

  1.   

    先取到这个四个文件,放在一个list中,然后循环一下.一个一个弄.就是这样啊
      

  2.   

    在先得到目录对象,然后得到里面的文件对象 通过listFiles() 得到目录里面的所有文件;然后迭代这个list;当是sql文件就处理(得到input流 然后写入到对应的txt文件里) 不就全部复制完成了。
      

  3.   


    public static void copyFile(String fileName1,String fileName2) throws IOException {
    File file1 = new File(fileName1);//待拷贝文件
    File file2 = new File(fileName2);//生成文件
    FileInputStream fileStream = new FileInputStream(file1);
    FileOutputStream fileOutStream = new FileOutputStream(file2);
    //byte[] byteArray = new byte[(int)file1.length()];适合小文件拷贝速度快占用内存大。
    //fileStream.read(byteArray);
    byte[] byteArray = new byte[1024];//通用文件拷贝速度慢
    int temp = 0;
    int count = 0;
    while((temp = fileStream.read())!= -1){
    if(count !=1024 ){
    byteArray[count] = (byte)temp;
    count ++;
    } else{
    count = 0;
    fileOutStream.write(byteArray);
    }

    }
    if(count != 0){
    fileOutStream.write(byteArray, 0, count);
    }
    fileStream.close();
    fileOutStream.close();
    }
    public static void main(String[] args) throws IOException {
    copyFile("D:" + File.separator + "hello.txt","D:" + File.separator + "abc.txt");//调用四次该方法即可实现复制文件,不用重复四遍相同代码来复制四个文件
    }
      

  4.   


    public static void copyFile(String fileName1,String fileName2) throws IOException {
    File file1 = new File(fileName1);//待拷贝文件
    File file2 = new File(fileName2);//生成文件
    FileInputStream fileStream = new FileInputStream(file1);
    FileOutputStream fileOutStream = new FileOutputStream(file2);
    //byte[] byteArray = new byte[(int)file1.length()];适合小文件拷贝速度快占用内存大。
    //fileStream.read(byteArray);
    byte[] byteArray = new byte[1024];//通用文件拷贝速度慢
    int temp = 0;
    while((temp = fileStream.read(byteArray))!=-1){
    System.out.println(temp);
    fileOutStream.write(byteArray,0,temp);
    }
    fileStream.close();
    fileOutStream.close();
    }
    复制方法改一下,上面的太丑陋了。
      

  5.   

    用这个方法能成功复制,但是复制后的csv文件分行正常,sql格式的文件没有换行,sql原式数据库文件,如果按原来的行排列的话很整齐,现在复制后,txt文件中的内容很乱,与之前的行完全不同了,请问怎么换行,使复制后的文件和之前的一样
      

  6.   

    楼主,7楼的复制方法是二进制复制,没有更改任何的文件内容,不信你可进行二进制比对。
    估计问题就在于你原始文件的tab符的大小不一样或windows和linux的换行符不一样。
    请确保在改名前和改名后都用同一个查看器打开。
      

  7.   

    先得到目录对象,然后得到里面的文件对象 通过listFiles() 得到目录里面的所有文件;然后迭代这个list;
      

  8.   

    很简单啊,写的只是一个简单示例如何复制一个文件,想复制多个文件传参的时候放进去个List迭代复制即可,方法都有了你的灵活使用啊。或者外层for 文件,循环调用该方法都可以。