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 ...
随机推荐
- word2007中如何隐藏工具栏
1.对于屏幕较小的用户来说,编辑时可能需要隐藏word上方的工具栏,具体操作如下:
- mysql启动问题access denied for user 'root'@'localhost'(using password:YES)
安装Mysql后利用SQLyogEnt启动是提示“access denied for user 'root'@'localhost'(using password:YES)”,开始我还为是因为是密码问 ...
- 20145120 《Java程序设计》第10周学习总结
20145120 <Java程序设计>第10周学习总结 教材学习内容总结 转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/16 ...
- IIS8中 出现ashx 401:未授权,uploadify上传文件失败
环境:阿里云服务器 windows2012 + IIS8 +asp.net 访问IIS 出现能正常访问aspx页面,但是通过ajax访问ashx上传文件的时候就出现ashx Status Code ...
- css中的border还可以这样玩
在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可以这样玩".这篇文章主要是很早以前看了别人 ...
- 【BZOJ】【1878】【SDOI2009】HH的项链
树状数组/前缀和 Orz lct1999 好神的做法... 先看下暴力的做法:对于区间[l,r],我们依次扫过去,如果这个数是第一次出现,那么我们种类数+1. 我们发现:区间中相同的几个数,只有最左边 ...
- JavaScript之数据类型讲解
JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number和String.还有1种复杂数据类型——Object,Object本质上是由一 ...
- AngularJs学习笔记--Forms
原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...
- 驱动笔记 - file_operations
#include <linux/fs.h> struct file_operations { struct module *owner; loff_t (*llseek) (struct ...
- 本地安装xssing
本地安装xssing 环境为apache+mysql+php,linux下和Windows均进行了尝试. 步骤: (1)Mysql中创建xing数据库,将xssing.sql中的语句复制并在xing数 ...