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 ...
随机推荐
- 如何分离数据库 (SQL Server Management Studio)
在 SQL Server Management Studio 对象资源管理器中,连接到 SQL Server 数据库引擎的实例上,再展开该实例. 展开“数据库”,并选择要分离的用户数据库的名称. 分离 ...
- foxmail收发gmail彻底失败
周一一上班,发现gmail无法收取邮件,刚开始以为网络不稳定,后来经过百度发现原因是 gmail邮箱也被屏蔽了. 虽然可以FQ,保证gmail邮箱暂时使用,但是不可否认,在当前的形势下, ...
- Bootstrap的宽度和分辨率的差别
首先在bootstrap里面所有的样式并在pc上是根据px的单位来判断的,就是我们说的分辨率, @media(min-width:1200px){ ......里面的样式 } 那么就是说当你的屏幕放大 ...
- 【BZOJ】【1025】【SCOI2009】游戏
DP/整数拆分 整个映射关系可以分解成几个循环(置换群的预备知识?),那么总行数就等于各个循环长度的最小公倍数+1(因为有个第一行的1~N).那么有多少种可能的排数就等于问有多少种可能的最小公倍数. ...
- SQL Server表分区案例
--学习创建表分区脚本/*SQL SERVER 2005中以上版本,终于引入了表分区,就是说,当一个表里的数据很多时,可以将其分拆到多个的表里,大大提高了性能.下面举例子说明之*/ --------- ...
- HDU1056 HangOver
HangOver Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descript ...
- DSP5509的时钟发生器(翻译总结自TI官方文档)
一.C5509时钟发生器的两个功能 1.将从CLKIN引脚输入的时钟信号变换为适当频率的CPU时钟,提供给CPU.外设和其他模块使用: 2.将CPU时钟通过可编程分频器输出到CLKOUT引脚. 时钟发 ...
- 【算法】E.W.Dijkstra算术表达式求值
算术表达式求值 我们要学习的一个栈的用例同时也是展示泛型的应用的一个经典例子,就是用来计算算术表达式的值,例如 ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ) 如果将4乘以5,把3 ...
- Javacript中(function(){})() 与 (function(){}()) 区别 {转}
这个问题可以从不同的角度来看,但从结果上来说 :他们是一样的.首先,如果从AST(抽象语法树)的角度来看,两者的AST是一模一样的,最终结果都是一次函数调用.因此,就解析器产生的结果论而言,两者是没有 ...
- C# 模拟一个处理消息队列的线程类 Message Queue
// 模拟一个处理消息队列的类 class MessageHandler { // 消息队列 private Queue<string> messageQue = new Queue< ...