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 ...
随机推荐
- Java学习之IO流总结
---恢复内容开始--- 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块区间,在这个文件里面存放着各种各样的数据,我们想读文 ...
- SL410K 在Ubuntu禁用触摸板
由于之前把系统自带的恢复去了,然后TouchPad一直不能禁用,而后我的410k就只装上ubuntu,想不到在ubuntu上,禁用/启用 触摸板这么方便. http://askubuntu.com/q ...
- it小小鸟心得
本来打算就这么浑浑噩噩的过完我的大学四年生涯,但当我读完这本书,改变了我的想法.许多人说大学是最美好的,确实,在这里,我每天都不用认真听讲,不用准时去上课,可是久而久之,自己有感而发觉得这样碌碌无为下 ...
- DOM操作样式表及其兼容性
DOM操作样式表的时候,存在很多浏览器兼容上的问题,测试的时候用的是Firefox 28.0.IE11.IE8.Chrome.测试的时候发现,不兼容问题基本上都是IE8和非IE浏览器之家的问题,很多I ...
- Least Common Ancestors 分类: ACM TYPE 2014-10-19 11:24 84人阅读 评论(0) 收藏
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- Poj 2349 Arctic Network 分类: Brush Mode 2014-07-20 09:31 93人阅读 评论(0) 收藏
Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9557 Accepted: 3187 De ...
- WPF编程学习——布局
本文目录 1.布局简介 2.面板(Panel) 3.视图框(Viewbox) 4.滚动视图控件(ScrollViewer) 5.公共布局属性 1.布局简介 应用程序界面设计中,合理的元素布局至关重要, ...
- [转]layoutSubviews总结
原文链接找不到了,转的时候别人也是转载的,但并未留下原创链接,就当是笔记了. ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size- (void)s ...
- ubuntu学习之一
1终端 在右键后菜单中找到 终端,(如果没有终端,使用 Ctrl+Alt+[F1~F6] ,您可以切换到1~6号控制台,输入: sudo apt-get install nautilus-open-t ...
- *args和**kw魔法参数
学Python挺久了,现在才搞懂这个还是有点惭愧 *args:传入元组,无关键字 **kw:传入字典,有关键字 示例: *args **kw 一起使用时args的参数需在前: