---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
/*20-1_4
File 常见方法
1.创建
boolean createFile(); 在指定位置创建文件,如果该文件已经存在,则不创建返回false;
static File createTempFile(String prefix, String suffix, File directory);
boolean mkdir();创建文件夹
boolean mkdirs(); 创建多级文件夹
2.删除
boolean delete();
void deleteOnExit();
3.判断
boolean canExecute();
boolean exists();
boolean isDirectory(); 判断前必须先exists();
boolean isFile(); 判断钱必须先exists();
boolean isHidden(); java 不能访问影藏的文件。
boolean isAbsolute(); 判断是否是绝对路径。
4.获取信息
get-函数
String getName();
String getPath();
String getParent(); 该方法返回绝对路径的文件父目录。如果获取的是相对路径,返回null。
如果相对路径有上一层目录,则返回上一层目录。
File getAbsoluteFile(); 文件可以不存在
String getAbsolutePath();
long lastModified();
long length();
boolean renameTo();该函数可以剪切文件。
*/
import java.io.*;
class FileDemo
{
public static void consMethod(){
File f1 = new File("a.txt");//
File f2 = new File("d:\\test\\20","b.txt");//
File d = new File("d:\\test\\20");
File f3 = new File(d,"c.txt");//
sop(f1);
sop(f2);
sop(f3);
File f4 = new File("d:"+File.separator+"test\\20\\d.txt");//
sop(f4);
}
public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args)
{
consMethod();
System.out.println("Hello World!");
}
}
//20-5_6
import java.io.*;
class FileDemo2
{
public static void main(String[] args)
{
File dir = new File("d:\\test\\20");
File[] files = dir.listFiles();//调用listFiles() 方法的对象必须封装成目录
for(File f : files){
System.out.println(f.getName()+"::"+f.length());
}
}
public static void listDemo_2(String[] args)
{
File dir = new File("d:\\test\\20");
String[] arr = dir.list(new FilenameFilter(){
public boolean accept(File dir, String name){
return name.endsWith(".java");
}
});
System.out.println("len:"+arr.length);
for(String name: arr){
System.out.println(name);
}
}
}
/*
sum:
File[] files = File.listRoots();
String[] name = f.list(); 打印文件、文件夹的名称。调用list方法的对象,必须封装了目录,该目录必须存在。
String[] list(FilenameFilter filter); 返回文件名称
boolean accept(File dir,String file);
File[] listFiles();
File[] listFiles(FilenameFilter filter); 返回文件对象
*/
//20-7_8
import java.io.*;
class FileDemo3
{
public static void main(String[] args)
{
File dir = new File("d:\\test");
showDir(0,dir);
}
public static void showDir(int n, File dir)
{
//System.out.print(" ");
System.out.println("|--"+dir);
File[] files = dir.listFiles();
for (File file : files)
{
for(int i=0;i<=n;i++)
System.out.print(". ");
if(file.isDirectory())
showDir(n+1,file);
else
System.out.println(file.getName());
}
}
}
/*
列出各级目录及文件
*/
//20-9
//删除目录
import java.io.*;
class RemoveDir
{
public static void main(String[] args)
{
File dir = new File("d:\\test\\new folder");
removeDir(dir);
System.out.println("Hello World!");
}
public static void removeDir(File dir){
deleteDir(0,dir);
}
public static void deleteDir(int n, File dir)
{
//System.out.print(" ");
File[] files = dir.listFiles();
for (File file : files)
{
for(int i=0;i<=n;i++)
System.out.print(". ");
if(file.isDirectory())
deleteDir(n+1,file);
else{
System.out.println(file.getName()+"......deleted");
file.delete();
}
}
System.out.println("|--"+dir+".....deleted");
dir.delete();
}
}
//20-10
//把java文件目录打印到txt的文件中
import java.io.*;
import java.util.*;
class JavaFileList
{
private static List<File> list = new ArrayList<File>();
public static void main(String[] args) throws IOException
{
File dir = new File("d:\\test");
PrintStream pw = new PrintStream(new FileOutputStream("d:\\test\\20\\JavaFileList.txt"));
System.setOut(pw);
showDir(dir);
System.out.println(list.size());
printArray(list);
pw.close();
}
public static void printArray(List<File> list){
for(File f : list){ //
System.out.println(f.getAbsolutePath()); //
}
}
public static void showDir(File dir)
{
File[] files = dir.listFiles();
for (File file : files)
{
if(file.isDirectory())
showDir(file);
else{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
}
/*20-15
打印流:
该流提供了打印方法,可以将各种数据类型的数据都原样打印。
字节打印流:
PrintStream
构造函数可以接受的参数类型:
1.file对象。
2.字符串路径。String
3.字节输出流。OutputStream
字符打印流:
PrintWriter:
1.file对象。
2.字符串路径。String
3.字节输出流。OutputStream
4.字符输出流。Writer
*/
class PrintWriterDemo
{
public static void main(String[] args)
{
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
File f = new File("a.txt");
PrintWriter out = new PrintWriter(f);
PrintWriter out = new PrintWriter("a.txt");
PrintWriter out = new PrintWriter(System.out);
PrintWriter out = new PrintWriter(new FileWriter("a.txt"),true);
PrintWriter out = new PrintWriter(new BufferedWriter (new FileWriter("a.txt")),true);
String line = null;
while(!(line = bufr.readLine()).equals("over")){
out.println(line);
// out.flush();
}
bufr.close();
out.close();
System.out.println("Hello World!");
}
}
//17-16
import java.io.*;
import java.util.*;
class SequenceDemo
{
public static void main(String[] args) throws IOException
{
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(new FileInputStream("d:\\test\\20\\1.txt"));
v.add(new FileInputStream("d:\\test\\20\\2.txt"));
v.add(new FileInputStream("d:\\test\\20\\3.txt"));
Enumeration<FileInputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("4.txt");
byte[] buf = new byte[1024];
int len = 0;
while((len = sis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
sis.close();
System.out.println("Hello World!");
}
}
//dom4j
//20-17
import java.io.*;
import java.util.*;
class SplitFile
{
public static void main(String[] args) throws IOException
{
merge();
System.out.println("Hello World!");
}
public static void merge()throws IOException{
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for (int x =1;x<=5 ;x++ )
{
al.add(new FileInputStream("d:\\test\\20\\"+x+".part"));
}
final Iterator<FileInputStream> it = al.iterator();
//ArrayList 通过 Iterator 建立 Enumeration
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){
public boolean hasMoreElements(){
return it.hasNext();
}
public FileInputStream nextElement(){
return it.next();
}
};
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("d:\\test\\20\\2.mp3");
byte[] buf = new byte[1024*1024];
int len = 0;
while((len = sis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
public static void splitFile() throws IOException{
FileInputStream fis = new FileInputStream("d:\\test\\20\\1.mp3");
FileOutputStream fos = null;
byte[] buf = new byte[1024*1024];
int len = 0;
int count = 1;
while((len = fis.read(buf))!=-1){
fos = new FileOutputStream("d:\\test\\20\\"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------