java中的文件复制问题,求高手解答

雪野孤痕 2012-05-31 11:16:29
在工程目录中有四个文件 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个文件
...全文
200 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sffx123 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
试了一个较短内容的文件确实能够复制,如果设计一个循环再改进一下应该可以复制很多,可是不能每次都逐条逐次复制吧。但是每次还是必须改变目标文件名字。
有向目标文件同时复制很多次的算法吗
[/Quote]很简单啊,写的只是一个简单示例如何复制一个文件,想复制多个文件传参的时候放进去个List迭代复制即可,方法都有了你的灵活使用啊。或者外层for 文件,循环调用该方法都可以。
Lucy20180417 2012-05-31
  • 打赏
  • 举报
回复
先取到这个四个文件,放在一个list中,然后循环一下.一个一个弄.就是这样啊
xlhb 2012-05-31
  • 打赏
  • 举报
回复
先得到目录对象,然后得到里面的文件对象 通过listFiles() 得到目录里面的所有文件;然后迭代这个list;
javascript前锋 2012-05-31
  • 打赏
  • 举报
回复
试了一个较短内容的文件确实能够复制,如果设计一个循环再改进一下应该可以复制很多,可是不能每次都逐条逐次复制吧。但是每次还是必须改变目标文件名字。
有向目标文件同时复制很多次的算法吗
ljhhh0123 2012-05-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

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

Java code

public static void copyFile(String fileName1,String fil……
[/Quote]
楼主,7楼的复制方法是二进制复制,没有更改任何的文件内容,不信你可进行二进制比对。
估计问题就在于你原始文件的tab符的大小不一样或windows和linux的换行符不一样。
请确保在改名前和改名后都用同一个查看器打开。
雪野孤痕 2012-05-31
  • 打赏
  • 举报
回复
用这个方法能成功复制,但是复制后的csv文件分行正常,sql格式的文件没有换行,sql原式数据库文件,如果按原来的行排列的话很整齐,现在复制后,txt文件中的内容很乱,与之前的行完全不同了,请问怎么换行,使复制后的文件和之前的一样[Quote=引用 7 楼 的回复:]

Java code

public static void copyFile(String fileName1,String fileName2) throws IOException {
File file1 = new File(fileName1);//待拷贝文件
File file2 = new File(fileName2);//生成文件
……
[/Quote]
sffx123 2012-05-31
  • 打赏
  • 举报
回复

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();
}
复制方法改一下,上面的太丑陋了。
sffx123 2012-05-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
给力例子看看,本人菜鸟

引用 2 楼 的回复:

引用楼主 的回复:
在工程目录中有四个文件 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_i……
[/Quote]

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");//调用四次该方法即可实现复制文件,不用重复四遍相同代码来复制四个文件
}
fengzhijiana123 2012-05-31
  • 打赏
  • 举报
回复
在先得到目录对象,然后得到里面的文件对象 通过listFiles() 得到目录里面的所有文件;然后迭代这个list;当是sql文件就处理(得到input流 然后写入到对应的txt文件里) 不就全部复制完成了。
ZZZ5512536 2012-05-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用楼主 的回复:
在工程目录中有四个文件 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 中,其它文件类似

复制一个文件我……
[/Quote]

他意思是你封装一下你复制文件的那个方法,让后以后需要复制文件的时候,调用这个方法就是了。。不必写四次
雪野孤痕 2012-05-31
  • 打赏
  • 举报
回复
给力例子看看,本人菜鸟[Quote=引用 2 楼 的回复:]

引用楼主 的回复:
在工程目录中有四个文件 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 中,其它文件类似

复制一个文件我……
[/Quote]
sffx123 2012-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
在工程目录中有四个文件 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 中,其它文件类似

复制一个文件我会,要复制四个,就得重复的……
[/Quote]为什么是四遍呢?你写个方法来来完成文件复制的功能,外面调用四次就完事了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧