名称分隔符
package com.fz.io;
import java.io.File;
public class PathDemo01 {
/**
* \/名称分隔符 separator
* @param args
*/
public static void main(String[] args) {
String path = "F:\\Javaspace\\IO_study01\\io.png";
System.out.println(File.separatorChar);
path = "F:/Javaspace/IO_study01/io.png";
System.out.println(path);
path = "F"+File.separator+"Javaspace"+File.separator+"IO_study01"+File.separator+"io.png";
System.out.println(path);
}
}
解码:和对应出现乱码的情况
package com.fz.io;
import java.io.UnsupportedEncodingException;
public class ContentDecode {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "性命生命使命a";
//编码:字节数组
byte[] datas = msg.getBytes();
//解码
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);
//2、字符集不统一
msg = new String(datas,0,datas.length,"gbk");
System.out.println(msg);
}
}
编码
package com.fz.io;
import java.io.UnsupportedEncodingException;
public class ContentEncode {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "性命生命使命a";
//编码:字节数组
byte[] datas = msg.getBytes();
System.out.println(datas.length);
datas = msg.getBytes("UTF-16LE");
System.out.println(datas.length);
datas = msg.getBytes("GBK");
System.out.println(datas.length);
}
}
创建目录两种方式
package com.fz.io;
import java.io.File;
/**
* 创建目录
* 1、mkdir():确保上级目录存在,不存在创建失败
* 2、mkdirs():上级目录可以不存在
* @author fanzh
*
*/
public class DirDemo01 {
public static void main(String[] args) {
File dir = new File("F:/Javaspace/IO_study01/dir/test");
//创建目录
boolean flag = dir.mkdirs();
System.out.println(flag);
}
}
列出下一级
package com.fz.io;
import java.io.File;
/**
* 列出下一级
* 1、list():列出下级名称
* 2、listFile():列出下级File对象
* @author fanzh
*
*/
public class DirDemo02 {
public static void main(String[] args) {
File dir = new File("F:/Javaspace/IO_study01");
String[] subNames = dir.list();
for(String s:subNames) {
System.out.println(s);
}
//下级对象
File[] subFiles = dir.listFiles();
for(File s:subFiles) {
System.out.println(s);
}
File[] roots = dir.listRoots();
for(File r:roots) {
System.out.println(r.getAbsolutePath());
}
}
}
利用递归:打印子孙级目录和文件的名称
何为递归?
package com.fz.io;
/**
* 递归:方法自己调用自己
* 递归头:何时结束递归
* 递归体:重复调用
* @author fanzh
*
*/
public class DirDemo03 {
public static void main(String[] args) {
printTen(1);
}
public static void printTen(int n) {
if(n>10) {
return;
}
System.out.println(n);
printTen(n+1);
}
}
打印子孙级目录和文件的名称
package com.fz.io;
import java.io.File;
/**
* 递归:方法自己调用自己
* 打印子孙级目录和文件的名称
* @author fanzh
*
*/
public class DirDemo04 {
public static void main(String[] args) {
File src = new File("F:/Javaspace/IO_study01");
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 com.fz.io;
import java.io.File;
/**
* 文件夹大小
* @author fanzh
*
*/
public class DirDemo05 {
public static void main(String[] args) {
File src = new File("F:/Javaspace/IO_study01");
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 com.fz.io;
import java.io.File;
/**
* 使用面向对象统计文件夹的大小
* @author fanzh
*
*/
public class DirCount {
private long len;
private String path;
private File src;
private int dirSize;
private int fileSize;
public DirCount(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()) {
this.fileSize++;
len+=src.length();
}else {
this.dirSize++;
for(File s:src.listFiles()) {
count(s);
}
}
}
}
public long getLen() {
return len;
}
public int getDirSize() {
return dirSize;
}
public int getFileSize() {
return fileSize;
}
public static void main(String[] args) {
DirCount dir = new DirCount("F:/Javaspace/IO_study01");
System.out.println(dir.getLen()+"--"+dir.getDirSize()+"--"+dir.getFileSize());
DirCount dir2 = new DirCount("F:/Javaspace/IO_study01/src");
System.out.println(dir2.getLen()+"--"+dir2.getDirSize()+"--"+dir2.getFileSize());
}
}
顺便统计了文件夹下的个数
获取图片的大小
package com.fz.io;
import java.io.File;
public class FileDemo01 {
public static void main(String[] args) {
String path="F:/Javaspace/IO_study01/io.png";
File src = new File(path);
System.out.println(src.length());
src = new File("F:/Javaspace/IO_study01", "io.png");
src = new File("F:/Javaspace","IO_study01/io.png");
System.out.println(src.length());
src = new File(new File("F:/Javaspace/IO_study01"),"io.png" );
System.out.println(src.length());
}
}
路径问题
(1)
package com.fz.io;
import java.io.File;
/**
* 相对路径:不存在盘符
* 绝对路径:存在盘符
* @author fanzh
*
*/
public class FileDemo02 {
public static void main(String[] args) {
String path="F:/Javaspace/IO_study01/io.png";
//绝对路径
File src = new File(path);
System.out.println(src.getAbsolutePath());
//相对路径
System.out.println(System.getProperty("user.dir"));
src = new File("io.png");
System.out.println(src.getAbsolutePath());
src = new File("aaa/io2.png");
System.out.println(src.getAbsolutePath());
}
}
(2)
package com.fz.io;
import java.io.File;
public class FileDemo03 {
public static void main(String[] args) {
File src = new File("F:/Javaspace/IO_study01/io.png");
System.out.println("名称:"+src.getName());
System.out.println("路径:"+src.getPath());
System.out.println("绝对路径:"+src.getAbsolutePath());
System.out.println("父路径:"+src.getParent());
System.out.println("父对象:"+src.getParentFile().getName());
}
}
文件状态
import java.io.File;
/**
* 文件状态
* @author fanzh
*
*/
public class FileDemo04 {
public static void main(String[] args) {
File src = new File("IO_study01/io.png");
System.out.println(src.getAbsolutePath());
System.out.println("是否存在:"+src.exists());
System.out.println("是否文件:"+src.isFile());
System.out.println("是否文件夹:"+src.isDirectory());
src = new File("io.png");
System.out.println("------------------------");
System.out.println(src.getAbsolutePath());
System.out.println("是否存在:"+src.exists());
System.out.println("是否文件:"+src.isFile());
System.out.println("是否文件夹:"+src.isDirectory());
src = new File("F:\\Javaspace\\IO_study01");
System.out.println("------------------------");
System.out.println(src.getAbsolutePath());
System.out.println("是否存在:"+src.exists());
System.out.println("是否文件:"+src.isFile());
System.out.println("是否文件夹:"+src.isDirectory());
src = new File("xxx");
if(!src.exists()) {
System.out.println("文件不存在");
}else {
if(src.isFile()) {
System.out.println("文件操作");
}else {
System.out.println("文件夹操作");
}
}
}
}
length获取图片、文件夹长度
package com.fz.io;
import java.io.File;
/**
* length
* @author fanzh
*
*/
public class FileDemo05 {
public static void main(String[] args) {
File src = new File("F:/Javaspace/IO_study01/io.png");
System.out.println("长度:"+src.length());
src = new File("F:/Javaspace/IO_study01");
System.out.println("长度:"+src.length());
src = new File("F:/Javaspace/IO_study02");
System.out.println("长度:"+src.length());
}
}
createNewFile和delete介绍
package com.fz.io;
import java.io.File;
import java.io.IOException;
/**
* createNewFile()不存在才创建,存在创建成功
* delete():删除已经存在的文件
* @author fanzh
*
*/
public class FileDemo06 {
public static void main(String[] args) throws IOException {
File src = new File("F:/Javaspace/IO_study01/io.txt");
boolean flag = src.createNewFile();
System.out.println(flag);
flag = src.delete();
System.out.println(flag);
src = new File("F:/Javaspace/IO_study02");
flag = src.createNewFile();
System.out.println(flag);
flag = src.delete();
System.out.println(flag);
}
}