zoukankan      html  css  js  c++  java
  • JAVA进阶23

    1、统计文件夹大小

     1 package cn.demo02;
     2 
     3 import java.io.File;
     4 
     5 /**
     6  * @Classname DirTest03
     7  * @Description TODO
     8  * @Date 2019-4-25 10:48
     9  * @Created by Administrator
    10  * 统计文件夹大小
    11  */
    12 public class DirTest03 {
    13     public static void main(String[] args) {
    14         File src = new File("F:/Java/Java-");
    15         count(src);
    16         System.out.println(len);
    17     }
    18     private static long len = 0;
    19     public static void count(File src){
    20         //获取大小
    21         if (null!=src&&src.exists()){
    22             if (src.isFile()){
    23                 //是否是文件,文件才有大小
    24                 len+=src.length();
    25             }else {
    26                 //如果是文件夹,输出子孙级文件
    27                 for (File s:src.listFiles()){
    28                     count(s);
    29                 }
    30             }
    31         }
    32     }
    33 
    34 }
    View Code

    运行结果图

    2、使用面向对象,统计文件夹的大小

     1 package cn.demo02;
     2 
     3 import java.io.File;
     4 
     5 /**
     6  * 使用面向对象:统计文件夹的大小
     7  *
     8  * @Classname DirTest04
     9  * @Description TODO
    10  * @Date 2019-4-25 11:10
    11  * @Created by Administrator
    12  */
    13 public class DirTest04 {
    14     //大小
    15     private long len;
    16     //文件夹
    17     private String path;
    18     //文件的个数
    19     private int fileSize;
    20     //文件夹的个数
    21     private int dirSize;
    22     //
    23     private File src;
    24 
    25     public DirTest04(String path) {
    26         this.path = path;
    27         this.src = new File(path);
    28         count(this.src);
    29     }
    30 
    31     public static void main(String[] args) {
    32         DirTest04 dir = new DirTest04("F:/Java/Java-");
    33         System.out.println("大小:"+dir.getLen()+"
    "+"文件夹的个数:"+dir.getDirSize()+"
    "+
    34                 "文件的个数:"+dir.getFileSize());
    35     }
    36 
    37     public long getLen() {
    38         return len;
    39     }
    40 
    41     public int getFileSize() {
    42         return fileSize;
    43     }
    44 
    45     public int getDirSize() {
    46         return dirSize;
    47     }
    48 
    49     //统计大小
    50     private void count(File src) {
    51         //如果是文件则获取大小
    52         if (null != src && src.exists()) {
    53             if (src.isFile()){
    54                 len += src.length();
    55                 this.fileSize++;
    56             } else {
    57                 this.dirSize++;
    58                 //如果是文件夹,则输出子孙级文件
    59                 for (File s : src.listFiles()) {
    60                     count(s);
    61                 }
    62             }
    63         }
    64     }
    65 }
    View Code

    运行结果图

    3、第一个IO程序:理解操作步骤

     1 package cn.demo02;
     2 
     3 import java.io.*;
     4 
     5 /**
     6  * 第一个程序:理解操作步骤
     7  * 1、创建源
     8  * 2、选择流
     9  * 3、操作
    10  * 4、释放资源
    11  *
    12  * @Classname IO_Demo01
    13  * @Description TODO
    14  * @Date 2019-4-25 15:56
    15  * @Created by Administrator
    16  */
    17 public class IO_Demo01 {
    18     public static void main(String[] args) {
    19         //1、创建源
    20         File src = new File("F:/Java/test018/demo01/abc.txt");
    21         //2、选择流
    22         InputStream is = null;
    23         try {
    24             is = new FileInputStream(src);
    25             //3、操作(读取)
    26             int temp;
    27             while ((temp = is.read()) != -1) {
    28                 System.out.print((char) temp);
    29             }
    30         } catch (FileNotFoundException e) {
    31             e.printStackTrace();
    32         } catch (IOException e) {
    33             e.printStackTrace();
    34         } finally {
    35             //释放资源
    36             try {
    37                 if (null != is) {
    38                     is.close();
    39                 }
    40             } catch (IOException e) {
    41                 e.printStackTrace();
    42             }
    43         }
    44     }
    45 }
    View Code

    运行结果图

    4、文件字节流

     1 package cn.demo02;
     2 
     3 import java.io.*;
     4 
     5 /**
     6  * @Classname IO_Demo02
     7  * @Description TODO
     8  * @Date 2019-4-25 16:20
     9  * @Created by Administrator
    10  */
    11 public class IO_Demo02 {
    12     public static void main(String[] args) {
    13         //创建源
    14         File src = new File("F:/Java/test018/demo01/abc.txt");
    15         //选择流
    16         InputStream is = null;
    17         try {
    18             is=new FileInputStream(src);
    19             //操作(分段读取)
    20             byte[] car = new byte[3];   //缓冲容器
    21             int len = -1;   //接受长度
    22             while ((len = is.read(car))!=-1){
    23                 //字节数组--》字符串(解码)
    24                 String str = new String(car,0,len);
    25                 System.out.println(str);
    26             }
    27         } catch (FileNotFoundException e) {
    28             e.printStackTrace();
    29         } catch (IOException e) {
    30             e.printStackTrace();
    31         }finally {
    32             try {
    33                 if (null!=is){
    34                     is.close();
    35                 }
    36             } catch (IOException e) {
    37                 e.printStackTrace();
    38             }
    39         }
    40     }
    41 }
    View Code

    运行结果图

    5、输出流OutputStream

     1 package cn.demo02;
     2 
     3 import jdk.internal.util.xml.impl.Input;
     4 
     5 import java.io.*;
     6 
     7 /**
     8  * 文件字节输出流
     9  * 1、创建源
    10  * 2、选择流
    11  * 3、操作(写出内容)
    12  * 4、释放资源
    13  *
    14  * @Classname IO_Demo03
    15  * @Description TODO
    16  * @Date 2019-4-25 18:10
    17  * @Created by Administrator
    18  */
    19 public class IO_Demo03 {
    20     public static void main(String[] args) {
    21         //1、创建源
    22         File desk = new File("desk.txt");
    23         //2、选择流
    24         OutputStream os = null;
    25         try {
    26             os = new FileOutputStream(desk,true);
    27             //3、操作(写出)
    28             String msg = "IO is easy!";
    29             byte[] datas = msg.getBytes();  //字符串--》字符串数组(编码)
    30             os.write(datas,0,datas.length);
    31             os.flush();
    32         } catch (FileNotFoundException e) {
    33             e.printStackTrace();
    34         } catch (IOException e) {
    35             e.printStackTrace();
    36         } finally {
    37             if (null != os) {
    38                 //4、释放资源
    39                 try {
    40                     os.close();
    41                 } catch (Exception e) {
    42                     e.printStackTrace();
    43                 }
    44             }
    45         }
    46     }
    47 }
    View Code

    运行结果图

  • 相关阅读:
    数据处理:并行和性能 狼人:
    GTK+3.0终发布:诸多新特性亮相 狼人:
    微软:Windows 7 SP1将于本月正式发布 狼人:
    程序员的进化 狼人:
    TDD并不是看上去的那么美 狼人:
    Bing API 将新增 Bing 空间数据服务 狼人:
    微软产品组里的十一类人 狼人:
    Windows Phone 7“芒果”更新带来浏览器重大升级:IE Mobile 9 狼人:
    UI前沿技术:XNA颜色滚动程序 狼人:
    传递拷贝php 数组 传递 引用
  • 原文地址:https://www.cnblogs.com/Anemia-BOY/p/10770137.html
Copyright © 2011-2022 走看看