Java之IO学习(一)磁盘操作/字节操作/字符操作

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();
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值