版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014252478/article/details/82496477
1、磁盘操作
File 类可以用于表示文件和目录的信息,但是它不表示文件的内容。
递归地列出一个目录下所有文件
public static void listAllFiles(File dir) {
if (dir == null || !dir.exists()) {
return;
}
if (dir.isFile()) {
System.out.println(dir.getName());
return;
}
for (File file : dir.listFiles()) {
listAllFiles(file);
}
}
2、字节操作
实现文件复制
public static void copyFile(String src, String dist) throws IOException {
FileInputStream in = new FileInputSteam(src);
FileOutputStream out = new FileOutputStream(dist);
byte[] buffer = new byte[20 * 1024];
// read() 最多读取 buffer.length 个字节
// 返回的是实际读取的个数
// 返回 -1 的时候表示读到 eof,即文件尾
while(in.read(buffer, 0, buffer.length) != -1){
out.write(buffer);
}
in.close();
out.close();
}
3、字符操作
编码解码
(1)String的编码方式
String str1 = "中文";
byte[] bytes = str1.getBytes("UTF-8");
String str2 = new String(bytes, "UTF-8");
System.out.println(str2);
(2)实现逐行输出文本文件的内容
public static void readFileContent(String, filePath) throws IOException{
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferReader = new BufferReader(fileReader);
String line;
while((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
// 装饰者模式使得 BufferedReader 组合了一个 Reader 对象
// 在调用 BufferedReader 的 close() 方法时会去调用 Reader 的 close() 方法
// 因此只要一个 close() 调用即可
bufferedReader.close();
}