io流操作文件--读取,遍历,规整
程序员文章站
2022-05-04 19:47:36
IO流 常用辅助方法/*** 辅助方法 io流读取指定文件内容*/ public static String readFileContent(String path) { // 1.定义目标文件 File srcFile = new File(path); StringBuffer stringBuffer = new StringBuffer(); if (!srcFile.exists()) { Sy...
IO流 常用辅助方法
/**
* 辅助方法 io流读取指定文件内容
*/
public static String readFileContent(String path) {
// 1.定义目标文件
File srcFile = new File(path);
StringBuffer stringBuffer = new StringBuffer();
if (!srcFile.exists()) {
System.out.println("指纹文件不存在");
return ""; //返回空字符串
}
// 2.创建一个流,指向目标文件
InputStream is = null;
try {
is = new FileInputStream(srcFile);
//3.创建一个用来存储读取数据的缓冲数组
byte[] array = new byte[128];
//4.循环往外流(count为每次读取数组中的有效字节总数)
int count = is.read(array);
// 5.循环打印
while (count != -1) {
// 将byte[] -》 String
// 将byte数组读取到的有效字节转换成字符串
String string = new String(array, 0, count);
System.out.print(string);
stringBuffer.append(string);
count = is.read(array);
}
return stringBuffer.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭io流
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return ""; //返回空字符串
}
/**
* 辅助方法 获取文件夹下所有的文件
*/
public static List<File> getAllFiles(String dir) {
//创建一个集合存放遍历到的File
List<File> files = new ArrayList<File>();
File file = new File(dir);
if (file.exists() && file.isDirectory()) {
//把遍历得到的东西存放在files里面
longErgodic(file, files);
}
return files;
}//这是一个递归方法,会不断来回调用本身,但是所有获得的数据都会存放在集合files里面
/**
- **辅助方法 **
*/
private static void longErgodic(File file, List<File> files) {//.listFiles()方法的使用 //把文件夹的所有文件(包括文件和文件名)都放在一个文件类的数组里面
File[] fillArr = file.listFiles();//如果是一个空的文件夹
if (fillArr == null) {
//后面的不执行,直接返回
return;
}
//如果文件夹有内容,遍历里面的所有文件(包括文件夹和文件),都添加到集合里面
for (File file2 : fillArr) {//如果只是想要里面的文件或者文件夹或者某些固定格式的文件可以判断下再添加
files.add(file2);
//添加到集合后,在来判断是否是文件夹,再遍历里面的所有文件 //方法的递归
longErgodic(file2, files);
}
}
本文地址:https://blog.csdn.net/weixin_44005694/article/details/107672131