您可以使用以下代码来实现您的需求:
该代码会创建一个 FileInputStream 对象,该对象将从指定的文件路径中读取数据。然后,它会创建一个长度为 1024 的字节数组,并使用 fis.read(buf) 方罩拿敬法将物慎文件内容读敏乎取到该数组中。最后,它会将读取到的内容输出到控制台,并关闭输入流。
Try again
//根据你的要求修改了一下代码,现在已经李枝老能将某文件夹哪升下的所有指定类型文件复制到//指定文件夹下了
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
public class ReadFiles {
public static final String FILTER = "搭掘xml"
public static final String SRC_DIR = "E:\\StudyData"// 待扫描的文件夹
public static final String DES_DIR = "E:\\testdata"// 复制后的目标文件夹
public static void main(String[] args) {
long a = System.currentTimeMillis()
scanDir(SRC_DIR, DES_DIR)
System.out.println("共花费时间:"+(System.currentTimeMillis() - a)/1000+"秒")
}
public static void scanDir(String srcPath, String desPath) {
File dir = new File(srcPath)
File[] files = dir.listFiles()
if (files == null)
return
for (int i = 0i <files.lengthi++) {
if (files[i].isDirectory()) {
scanDir(files[i].getAbsolutePath(), desPath)
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase()
copyFile(strFileName, desPath + files[i].getName())
}
}
}
public static void copyFile(String srcName, String destName) {
if (srcName.endsWith(FILTER)) {
System.out.println("正在复制文件 "+srcName+" 至 "+destName)
try {
BufferedInputStream in = new BufferedInputStream(
new FileInputStream(srcName))
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(destName))
int i = 0
byte[] buffer = new byte[2048]
while ((i = in.read(buffer)) != -1) {
out.write(buffer, 0, i)
}
out.close()
in.close()
} catch (Exception ex) {
ex.printStackTrace()
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)