1、统计文件夹大小

 package cn.demo02;

 import java.io.File;

 /**
* @Classname DirTest03
* @Description TODO
* @Date 2019-4-25 10:48
* @Created by Administrator
* 统计文件夹大小
*/
public class DirTest03 {
public static void main(String[] args) {
File src = new File("F:/Java/Java-");
count(src);
System.out.println(len);
}
private static long len = 0;
public static void count(File src){
//获取大小
if (null!=src&&src.exists()){
if (src.isFile()){
//是否是文件,文件才有大小
len+=src.length();
}else {
//如果是文件夹,输出子孙级文件
for (File s:src.listFiles()){
count(s);
}
}
}
} }

运行结果图

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

 package cn.demo02;

 import java.io.File;

 /**
* 使用面向对象:统计文件夹的大小
*
* @Classname DirTest04
* @Description TODO
* @Date 2019-4-25 11:10
* @Created by Administrator
*/
public class DirTest04 {
//大小
private long len;
//文件夹
private String path;
//文件的个数
private int fileSize;
//文件夹的个数
private int dirSize;
//源
private File src; public DirTest04(String path) {
this.path = path;
this.src = new File(path);
count(this.src);
} public static void main(String[] args) {
DirTest04 dir = new DirTest04("F:/Java/Java-");
System.out.println("大小:"+dir.getLen()+"\n"+"文件夹的个数:"+dir.getDirSize()+"\n"+
"文件的个数:"+dir.getFileSize());
} public long getLen() {
return len;
} public int getFileSize() {
return fileSize;
} public int getDirSize() {
return dirSize;
} //统计大小
private void count(File src) {
//如果是文件则获取大小
if (null != src && src.exists()) {
if (src.isFile()){
len += src.length();
this.fileSize++;
} else {
this.dirSize++;
//如果是文件夹,则输出子孙级文件
for (File s : src.listFiles()) {
count(s);
}
}
}
}
}

运行结果图

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

 package cn.demo02;

 import java.io.*;

 /**
* 第一个程序:理解操作步骤
* 1、创建源
* 2、选择流
* 3、操作
* 4、释放资源
*
* @Classname IO_Demo01
* @Description TODO
* @Date 2019-4-25 15:56
* @Created by Administrator
*/
public class IO_Demo01 {
public static void main(String[] args) {
//1、创建源
File src = new File("F:/Java/test018/demo01/abc.txt");
//2、选择流
InputStream is = null;
try {
is = new FileInputStream(src);
//3、操作(读取)
int temp;
while ((temp = is.read()) != -1) {
System.out.print((char) temp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
try {
if (null != is) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

运行结果图

4、文件字节流

 package cn.demo02;

 import java.io.*;

 /**
* @Classname IO_Demo02
* @Description TODO
* @Date 2019-4-25 16:20
* @Created by Administrator
*/
public class IO_Demo02 {
public static void main(String[] args) {
//创建源
File src = new File("F:/Java/test018/demo01/abc.txt");
//选择流
InputStream is = null;
try {
is=new FileInputStream(src);
//操作(分段读取)
byte[] car = new byte[3]; //缓冲容器
int len = -1; //接受长度
while ((len = is.read(car))!=-1){
//字节数组--》字符串(解码)
String str = new String(car,0,len);
System.out.println(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (null!=is){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

运行结果图

5、输出流OutputStream

 package cn.demo02;

 import jdk.internal.util.xml.impl.Input;

 import java.io.*;

 /**
* 文件字节输出流
* 1、创建源
* 2、选择流
* 3、操作(写出内容)
* 4、释放资源
*
* @Classname IO_Demo03
* @Description TODO
* @Date 2019-4-25 18:10
* @Created by Administrator
*/
public class IO_Demo03 {
public static void main(String[] args) {
//1、创建源
File desk = new File("desk.txt");
//2、选择流
OutputStream os = null;
try {
os = new FileOutputStream(desk,true);
//3、操作(写出)
String msg = "IO is easy!";
byte[] datas = msg.getBytes(); //字符串--》字符串数组(编码)
os.write(datas,0,datas.length);
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != os) {
//4、释放资源
try {
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

运行结果图

JAVA进阶23的更多相关文章

  1. java进阶(23)--List接口

    一.基本概念 1.有序可重复 2.有下标 3.包含ArraList.LinkedList.Vector   二.List中特有的方法 且常用 (以下军均为数组通用方法) 1.void add(int ...

  2. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  3. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

  4. Java进阶之路

    Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...

  5. Java 进阶7 并发优化 5 并发控制板方法

    Java 进阶7 并发优化 5 并发控制板方法 20131114 前言:          Java 中多线程并发程序中存在线程安全的问题,之前学习 Java的同步机制,掌握的同步方法只有一种就是使用 ...

  6. Java进阶2 数组内存和对象的内存管理知识

    Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...

  7. java进阶视频分享

    更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...

  8. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  9. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...

随机推荐

  1. linux 下搭建php环境

    linux 下搭建php环境 1.下载apache (http://httpd.apache.org/download.cgi) 下载php组件 ( http://cn2.php.net/get/ph ...

  2. k邻近算法(KNN)实例

    一 k近邻算法原理 k近邻算法是一种基本分类和回归方法. 原理:K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实 ...

  3. Eureka配置instanceId显示IP

    直接配置: eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-add ...

  4. 系统检测工具ROSWTF

    ROSWTF 详细见http://wiki.ros.org/roswtf roswtf will examine your ROS setup, such as your environment va ...

  5. Go channel实现源码分析

    go通道基于go的并发调度实现,本身并不复杂,go并发调度请看我的这篇文章:go并发调度原理学习 1.channel数据结构 type hchan struct { qcount uint // 缓冲 ...

  6. DSAPI 导出EXEDLL函数到字符串

    EXE或者DLL写好了,要开始写函数说明文档了,可是有时里面的函数太多,怎么能自动列出来呢?在DSAPI中提供了该功能(目前没有做参数类型导出,以后有时间会添加). 先准备一个已经写好的EXE或DLL ...

  7. ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。

    js 监听ios手机键盘弹起和收起的事件 /* js 监听ios手机键盘弹起和收起的事件 */ document.body.addEventListener('focusin', () => { ...

  8. Excel自动换行、Export2Excel 自动换行

    1需求:导出excel后自动换行显示. 2插件:Export2Excel 3.测试 listToExcel() { import('@/vendor/Export2Excel').then(excel ...

  9. Yii2设计模式——Yii2中用到哪些设计模式?

    "Yii2设计模式"包含了两个方面的内容:1.设计模式,2.Yii2框架. <设计模式>一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语 ...

  10. 你应该学会的Python多版本管理工具Pyenv

    目录 Pyenv 简介 安装pyenv 通过pyenv安装python各种发行版 pyenv命令 多版本Python的管理 Pyenv常见问题Wiki Pyenv 简介 首先,该工具是在类linux环 ...