java动态读取某个文件夹下的所有文件信息,代码如下:
import java.io.FileNotFoundExceptionimport java.io.IOException
import java.io.File
public class ReadFile {
public ReadFile() {
}
/**
* 动态读取某个文件夹下的所有文件信息
*/
public static boolean readfile(String filepath) throws FileNotFoundException, IOException {
try {
File file = new File(filepath)
if (!file.isDirectory()) {
System.out.println("文件")
System.out.println("path=" + file.getPath())
System.out.println("absolutepath=" + file.getAbsolutePath())
System.out.println("name=" + file.getName())
} else if (file.isDirectory()) {
System.out.println("文件夹")
String[] filelist = file.list()
for (int i = 0 i < filelist.length i++) {
File readfile = new File(filepath + "\\" + filelist[i])
if (!readfile.isDirectory()) {
System.out.println("path=" + readfile.getPath())
System.out.println("absolutepath="
+ readfile.getAbsolutePath())
System.out.println("name=" + readfile.getName())
} else if (readfile.isDirectory()) {
readfile(filepath + "\\" + filelist[i])
}
}
}
} catch (FileNotFoundException e) {
System.out.println("readfile() Exception:" + e.getMessage())
}
return true
}
public static void main(String[] args) {
try {
readfile("e:/videos")
// deletefile("D:/file")
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
System.out.println("ok")
}
}
实现思路:无论是何种类型,都是转换为流的形式进行的文件传输和存储。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null
OutputStreamWriter pw = null//定义一个流
try {
String file = "D:/test/test.GIF"
bre = new BufferedReader(new FileReader(file))//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK")//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str)//将要写入文件的内容,可以多次write
};
bre.close();
pw.close()//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。