Java:文件类File的详解
import java.io.*;
class FileDemo
{
public static<T> void sop(T t)
{
System.out.println(t);
}
public static void main(String[] args)throws IOException
{
//Consmethod();
//method_1();
//method_2();
//method_3();
method_4();
} public static void method_1()throws IOException
{
//创建文件
File f = new File("F:\\myfile\\file.txt");
//f.deleteOnExit();
//sop("create:"+f.createNewFile());
sop("delete:"+f.delete()); //创建文件夹
File dir = new File("F:\\File\\dir");
sop("create:"+dir.mkdir());
// File dir = new File("F:\\File\\dir\\aaa\\bb\\cc");
// sop("create:"+dir.mkdirs());
}
public static void method_2()throws IOException
{
File f = new File("E:\\java0217\\Java IO\\File\\FileDemo.java");
sop("canExecute():"+f.canExecute());
sop("exists()):"+f.exists());
//在判断文件目录是否是目录或文件时,必须先判断该文件对象封装的内容是否存在,通过上面的exists()判断。
sop("isdir:"+f.isDirectory());
sop("isfile:"+f.isFile());
sop("isHidden:"+f.isHidden());
sop("isAbsolute:"+f.isAbsolute());
}
public static void method_3()throws IOException
{
File f = new File("F:\\myfile\\file.txt");
sop("getName:"+f.getName());
sop("getParent:"+f.getParent());
sop("getPath:"+f.getPath());
sop("getAbsolutePath:"+f.getAbsolutePath());
sop("lastModified:"+f.lastModified());
sop("length:"+f.length());
}
public static void method_4()throws IOException
{
File f1 = new File("F:\\myfile\\file.txt");
File f2 = new File("F:\\myfile\\fileDemo.txt");
sop("renameTo:"+f1.renameTo(f2));
} //创建文件对象
public static void Consmethod()
{
//将file.txt封装成File对象,可以将已有的和未出现的文件或者文件夹封装成对象。 //构造方法一File(String pathname)
File f1 = new File("F:\\myfile2\\file1.txt"); //构造方法二File(String parent, String child)
File f2 = new File("F:\\myfile2","file2.txt"); //构造方法三File(File parent, String child)
File d = new File("F:\\myfile2");
File f3 = new File(d,"file3.txt"); //static String separator
String s = File.separator;//默认当前系统下的分隔符。具有跨平台性
File f4 = new File("F:"+s+"myfile2"+s+"file4.txt"); sop("f1:"+f1);//f1:F:\myfile2\file1.txt
sop("f2:"+f2);//f2:F:\myfile2\file2.txt
sop("f3:"+f3);//f3:F:\myfile2\file3.txt
sop("f4:"+f4);//f4:F:\myfile2\file4.txt
}
}
import java.io.*;
class FileDemo2
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
//listRoots();
//list();
listFiles();
}
public static void listRoots()
{
File[] files = File.listRoots();
for(File file: files)
{
sop(file);
}
} public static void list()
{
File f = new File("F:\\");
String[] str = f.list();//调用list方法的file对象必须是一个封装的目录,而且还必须存在,否则返回空指针异常
for(String s: str)
{
sop(s);
}
} }
递归文件目录:
列出指定目录下的文件或文件夹,包含子目录中的内容,也就是列出指定目录下的所有内容。
import java.io.*;
class FileDemo3
{
public static void main(String[] args)
{
showdir(new File("E:\\java0217"));
// ToBin(6);
// getsum(10);
// int x = getsum(10);
// System.out.println(x);
}
public static void showdir(File dir)
{
System.out.println(dir);
File[] files = dir.listFiles();
for(int i=0; i<files.length; i++)
{
if(files[i].isDirectory()==true)
showdir(files[i]);//递归调用showdir()
else
System.out.println(files[i]);
}
} public static void ToBin(int num)
{
if(num>0)
{
ToBin(num/2);//递归调用ToBin()
System.out.println(num%2);
}
}
public static int getsum(int x)
{
if(x==1)
return 1;
else
return x+getsum(x-1);//递归调用getsum()
}
}
import java.io.*;
import java.util.*;
class JavaFileList
{
public static void main(String[] args)throws IOException
{
File dir = new File("E:\\java0217");
ArrayList<File> al = new ArrayList<File>();
filetolist(dir,al);
System.out.println(al.size());
}
public static void filetolist(File dir,List<File> list)throws IOException
{
//System.out.println(dir);
File[] files = dir.listFiles();
for(int i=0; i<files.length; i++)
{
if(files[i].isDirectory())
filetolist(files[i],list);
else
{
files[i].getName().endsWith(".java");
list.add(files[i]);
}
}
BufferedWriter buf = new BufferedWriter(new FileWriter("F:\\myfile\\listjava.txt"));
for(File f: list)
{
String str = f.getAbsolutePath();
buf.write(str);
buf.newLine();
buf.flush();
}
buf.close();
}
}
import java.io.*;
class RemoveDir
{
public static void main(String[] args)
{
Removedir(new File("F:\\aaa"));
}
public static void Removedir(File dir)
{
File[] files = dir.listFiles();
for(int i=0; i<files.length; i++)
{
if(files[i].isDirectory()==true)
Removedir(files[i]);//递归调用Removedir()
else
System.out.println(files[i].toString()+"-file-"+files[i].delete());
}
System.out.println(dir+"::dir::"+dir.delete());
}
}
/*
F:\aaa\bbb\bb::dir::true
F:\aaa\bbb\ccc\a.txt.txt-file-true
F:\aaa\bbb\ccc::dir::true
F:\aaa\bbb::dir::true
F:\aaa::dir::true
*/
练习三:先切割文件(流),在合并文件(流)
import java.io.*;
import java.util.*;
class SplitFileDemo
{
public static void main(String[] args)throws IOException
{
SplitFile();
SequenceFile();
}
public static void SplitFile()throws IOException
{
FileInputStream fis = new FileInputStream("F:\\myfile\\b03.mp3"); byte[] buf = new byte[1024*1024]; int len = 0;
int count=1;
FileOutputStream fos = null;
while((len=fis.read(buf))!=-1)
{
fos = new FileOutputStream("F:\\myfile\\splitfiles\\part"+(count++)+".suipian");//以1M为单位进行切割 fos.write(buf,0,len); fos.close();
}
fis.close(); }
public static void SequenceFile()throws IOException
{
Vector<FileInputStream> v = new Vector<FileInputStream>();
for(int i=1;i<=3;i++)
{
v.add(new FileInputStream("F:\\myfile\\splitfiles\\part"+i+".suipian"));
} Enumeration<FileInputStream> enu = v.elements();
SequenceInputStream sis = new SequenceInputStream(enu);//将多个流整合为一个流对象 FileOutputStream fos = new FileOutputStream("F:\\myfile\\splitfiles\\part123.mp3");
byte[] buf = new byte[1024];
int num = 0;
while((num = sis.read(buf))!=-1)
{
fos.write(buf,0,num);
}
fos.close();
sis.close();
}
}
import java.io.*;
import java.util.*;
class RunCount
{
public static void main(String[] args)throws IOException
{
Properties prop = new Properties();
File f = new File("F:\\myfile\\count.ini");//"count.properties"
if(!f.exists())
f.createNewFile(); FileInputStream fis = new FileInputStream(f); prop.load(fis); int count=0;
String value = prop.getProperty("time");
if(value!=null)
{
count = Integer.parseInt(value);
if(count>=5)
{
System.out.println("你好,使用次数已到,再用需要收费!");
return ;
}
}
count++;
prop.setProperty("time",count+""); FileOutputStream fos = new FileOutputStream(f); prop.store(fos,""); fis.close();
fos.close();
}
}
Java:文件类File的详解的更多相关文章
- 一个 java 文件的执行过程详解
平时我们都使用 idea.eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的? 总体过程 我们编写的 java 文件在由编译器编译后会生成对应的 cla ...
- Java 文件类 File
1.File 类 1.File 类 1.1.构造方法 文件的 抽象路径名(操作系统无关) 构造方法 格式 说明 File(String filename) 把文件路径名字符串转换为“抽象路径名”,用来 ...
- Java枚举类与注解详解——一篇文章读懂枚举类与注解详
目录 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举类实现接口 二.注解 ① 生成文档相关注解 ②注解在编译时进行格式检查 ③注解跟踪代码的 ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
- Java虚拟机之垃圾回收详解一
Java虚拟机之垃圾回收详解一 Java技术和JVM(Java虚拟机) 一.Java技术概述: Java是一门编程语言,是一种计算平台,是SUN公司于1995年首次发布.它是Java程序的技术基础,这 ...
- 使用Java操作文本文件的方法详解
使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...
- java 关键字final static native详解
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...
- Java网络编程和NIO详解开篇:Java网络编程基础
Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...
- Java网络编程和NIO详解8:浅析mmap和Direct Buffer
Java网络编程与NIO详解8:浅析mmap和Direct Buffer 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NI ...
随机推荐
- BICEP单元测试计划-四则运算-测试
一.6个值得测试的具体部位,他们能够提高你的测试技巧 Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你是否可以强制 ...
- “我爱淘”冲刺阶段Scrum站立会议6
完成任务: 对大部分的布局已经做好了布置. 计划任务: 实现数据库的链接,将页面功能完善. 遇到问题: 使用webservice对数据的提取,用数据库将书的信息展示软件中.
- 基于OpenMP的矩阵乘法实现及效率提升分析
一. 矩阵乘法串行实现 例子选择两个1024*1024的矩阵相乘,根据矩阵乘法运算得到运算结果.其中,两个矩阵中的数为double类型,初值由随机数函数产生.代码如下: #include <i ...
- hope is a good thing!
好久没有写博客了,在这么特殊的日子里,似乎不写点东西感觉总是少了点什么.其实从昨天开始就在努力的回忆,回忆自己这个2014年都做了些什么?自己收获了些什么?突然就觉得去年的那个暑假是那么的熟悉,怎么又 ...
- sudo su 提示没有配置JDK environment
sudo su 提示没有配置JDK environment 最近工作遇到一问题,我通过SecureCRT远程登录服务器,部署web应用.将变更文件替换后,我需要切换到root用户,重启Tomcat.所 ...
- Struts2中的ModelDriven机制及其运用(转)
所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public cla ...
- 图解SQL的Join(转摘)
转摘网址:http://coolshell.cn/articles/3463.html 对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的 ...
- Vue2.0 vue-source.js jsonp demo vue跨域请求
以调用百度的输入提示接口为例 ===================================================================================== ...
- [COCI]coci2015/2016 nekameleoni
题意: 初始数列,每个数都在1~k以内 支持两种操作:1.修改一个数,修改后的数在1~k内 2.查询一个最短包含1~k的序列的长度 查询100000 ...
- Leetcode#108 Convert Sorted Array to Binary Search Tree
原题地址 对于已排序数组,二分法递归构造BST 代码: TreeNode *buildBST(vector<int> &num, int i, int j) { if (i > ...