关于文件读写问题 问题是这样的,我需要从数据库中读取文件的路径放在一个List中,然后把这些文件拷贝到另外一个目录,怎样才能实现,希望能说的详细一点,真的谢谢了 !!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你根据LIST中的文件路径,循环生成一个file对象,然后copy,不就OK了吗 如LS所言。。Java中没有现成的Copy,用Stream写个静态方法A.copyTo (String from,String to)。 public void fileCopy(File file) throws Exception { FileInputStream fis = null; FileOutputStream fos = null; File[] firstF = file.listFiles(); for (int j = 0; j < firstF.length; j++) { File[] subF = firstF[j].listFiles(); for (int i = 0; i < subF.length; i++) { String fileName = subF[i].getName(); fis = new FileInputStream(subF[i]); fos = new FileOutputStream("D:\\" + fileName); int byt; while ((byt = fis.read()) != -1) { fos.write(byt); } } } fis.close(); fos.close(); }自己研究一下吧,挺容易的 就这样的“很容易”的问题,有几个人能真正写得很好?第一是并行迭代的问题。如果源文件在不同的DISK上,一个线程中循环读和多线程并行读,哪个性能高?第二个是IO操作效率问题。上面的代码读写一次要经过五次上下文切l换,三次用户/内核模式数据复制。而如果系统支持DMA通道,可以直接在内核模式下将源数据COPY到目标。FileChannel的transferTo和transferFrom可以使用。如果文件比较大,Buffer的块操作肯定比byte操作要快。 synchronized 对数据库操作的问题。。。 求教SCJP 题目 JAVA 音频 视频 一道内部类的面试题 各位大虾,帮忙把一段delphi代码改成java的!帮忙啊!~~~~~急 一个关于finalize()的问题 关于多个线程结束的问题? 谁能大概告诉我一下Vector()这个类是怎么回事?该怎样使用比较合适? 简单问题 有人用过tomcat吗?怎么改默认页面? swt如何实现导入指定文件夹下的文件?我做bs不会 cs 帮小的改改计算器吧
FileInputStream fis = null;
FileOutputStream fos = null; File[] firstF = file.listFiles();
for (int j = 0; j < firstF.length; j++) {
File[] subF = firstF[j].listFiles();
for (int i = 0; i < subF.length; i++) {
String fileName = subF[i].getName();
fis = new FileInputStream(subF[i]);
fos = new FileOutputStream("D:\\" + fileName);
int byt;
while ((byt = fis.read()) != -1) {
fos.write(byt);
} }
}
fis.close();
fos.close();
}自己研究一下吧,挺容易的
如果源文件在不同的DISK上,一个线程中循环读和多线程并行读,哪个性能高?
第二个是IO操作效率问题。
上面的代码读写一次要经过五次上下文切l换,三次用户/内核模式数据复制。
而如果系统支持DMA通道,可以直接在内核模式下将源数据COPY到目标。
FileChannel的transferTo和transferFrom可以使用。如果文件比较大,Buffer的块操作肯定比byte操作要快。