打印子孙级目录和文件的名称
package cn.dym12;
import java.io.File;
/**
* 递归:方法自己调用自己
* 打印子孙级目录和文件的名称
* @author Administrator
*
*/
public class DirDemo03 {
public static void main(String[] args) {
File src=new File("D:\\java\\workspace\\D1\\src\\cn");
printName(src,0);
}
//打印子孙级目录和文件的名称
public static void printName(File src,int deep) {
//控制前面层次的
for(int i=0;i<deep;i++) {
System.out.print("-");
}
//打印名称
System.out.println(src.getName());
if(null==src||!src.exists()) { //递归头
return;
}else if(src.isDirectory()) { //是目录
for(File s:src.listFiles()) {
printName(s,deep+1); //递归体
}
}
}
}
统计文件夹的大小
package cn.dym12;
import java.io.File;
/**
* 统计文件夹的大小
* @author Administrator
*
*/
public class DirDemo05 {
public static void main(String[] args) {
File src=new File("D:\\java\\workspace\\D1");
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);
}
}
}
}
}
使用面向对象:统计文件夹的大小
package cn.dym12;
import java.io.File;
/**
* 使用面向对象:统计文件夹的大小
* @author Administrator
*
*/
public class DirDemo05 {
//大小
private long len;
//文件夹路径
private String path;
//文件的个数
private int fileSize;
//文件夹的个数
private int dirSize;
private File src;
public DirDemo05(String path) {
this.path = path;
this.src = new File(path);
count(this.src);
}
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);
}
}
}
}
public long getLen() {
return len;
}
public int getFileSize() {
return fileSize;
}
public int getDirSize() {
return dirSize;
}
public static void main(String[] args) {
DirDemo05 dir=new DirDemo05("D:/java/workspace/D1");
System.out.println(dir.getLen()+"-->"+dir.getFileSize()+"-->"+dir.getDirSize());
DirDemo05 dir2=new DirDemo05("D:\\java\\workspace\\D1\\src\\cn\\dym12\\FileDemo03.java");
System.out.println(dir2.getLen()+"-->"+dir2.getFileSize()+"-->"+dir2.getDirSize());
}
}
UTF-8 一个中文占3个字节
编码:字符串 ——》 字节
package cn.dym12;
import java.io.UnsupportedEncodingException;
/**
* 编码:字符串 ——》 字节
* @author Administrator
*
*/
public class ContentEncode {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg ="性命生命使命a";
//编码: 字节数组
byte[] datas = msg.getBytes(); //默认使用工程的字符集//GBK
System.out.println(datas.length);
//编码: 其他字符集
datas = msg.getBytes("UTF-16LE");
System.out.println(datas.length);
datas = msg.getBytes("Utf-8");
System.out.println(datas.length);
}
}
解码: 字节->字符串
package cn.dym12;
import java.io.UnsupportedEncodingException;
/**
* 解码: 字节->字符串
* @author
*
*/
public class ContentDecode {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg ="性命生命使命a";
//编码: 字节数组
byte[] datas = msg.getBytes(); //默认使用工程的字符集
//解码: 字符串 String(byte[] bytes, int offset, int length, String charsetName)
msg = new String(datas,0,datas.length,"utf8");
System.out.println(msg);
//乱码:
//1)、字节数不够
msg = new String(datas,0,datas.length-2,"utf8");
System.out.println(msg);
msg = new String(datas,0,datas.length-1,"utf8");
System.out.println(msg);
//2)、字符集不统一
msg = new String(datas,0,datas.length-1,"gbk");
System.out.println(msg);
}
}