2019.9.12

文件属性的操作
1)用3种方式创建文件对象“d:\java123\abc.txt”,并获取此文件的名称和文件大小、是否隐藏文件、路径、绝对路径、父路径、最后修改时间等信息。
(2)用createNewFile方法在当前目录下新建文件“a.txt”,并获取此文件的路径、绝对路径、父路径,然后将其删除,根据删除的返回值打印是否成功删除的信息。
(3)列出目录“d:\java123” 下所有文件和目录;列出目录“d:\java123” 下所有后缀为“java”的文件。

代码:
package class2;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyFile{
	public static void main(String[] args) {
		Date now=new Date();
		SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		File file = new File("d:/java123/abc.txt");
		File file1= new File("d://java123//abc.txt");
		File file2= new File("d:\\java123\\abc.txt");
		System.out.println("文件的名称是:"+file.getName());
		System.out.println("文件的大小是:"+file.length());
		System.out.println("文件是否是隐藏文件:"+file.isHidden());
		System.out.println("文件的路径为:"+file.getPath());
		System.out.println("文件的绝对路径为:"+file.getAbsolutePath());
		System.out.println("文件的父路径为:"+file.getParent());
		System.out.println("文件最后修改时间是:"+dateFormat.format(file.lastModified()));
		System.out.println("\n");
		File f = new File("d:/java123/a.txt");
		if(!f.exists()) {
			try {
				f.createNewFile();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
		System.out.println("文件的路径为:"+f.getPath());
		System.out.println("文件的绝对路径为:"+f.getAbsolutePath());
		System.out.println("文件的父路径为:"+f.getParent());
		if(f.delete()) {
			System.out.println("文件删除成功!");
		}
		System.out.println("\n");
		File dir=new File("d:/java123");
		String[] fileNames=dir.list();
		System.out.println("list all files..."+fileNames.length);
		for(int i=0;i<fileNames.length;i++) {
			System.out.println(fileNames[i]);
		}
		System.out.println("\n");
		
		FileAccept con=new FileAccept("java");
		fileNames =dir.list(con);
		System.out.println("list java files..."+fileNames.length);
		for(int i=0;i<fileNames.length;i++) {
			System.out.println(fileNames[i]);
		}
	}
}

class FileAccept implements FilenameFilter{
	String extName="";
	FileAccept(String extName){
		this.extName=extName;
	}
	public boolean accept(java.io.File file,String fileName) {
		return fileName.endsWith(extName);
	}
}

运行截图:

文件内容的读写
(1)教材P278【例15.3】,使用FileOutputStream类向文件word.txt写入信息,然后通过FileInputStream类将文件中的数据读到控制台上。

代码:
package class2;

import java.io.*;
public class MyIO {
	public static void main(String[] args) {
		String str="abcd1234文件...---";
		File file=new File("d:/java123/word.txt");
		try {
			FileOutputStream out=new FileOutputStream(file,true);
			FileInputStream put=new FileInputStream(file);
			byte[] byt1=str.getBytes();
			out.write(byt1);
			out.close();
			byte[] byt2=new byte[(int)file.length()];
			put.read(byt2);
			String str1=new String(byt2);
			System.out.print(str1);
			put.close();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}

运行截图:

(2)用FileOutputStream类和FileInputStream类实现文件的复制,并验证word、jpg、 avi、文本文件(txt)的复制情况。

代码:
package class2;

import java.io.*;
public class MyCopy {
	public static void main(String[] args) {
		File file1=new File("d:/java123/copy1.txt");
		File file2=new File("d:/java123/copy2.txt");
		try {
			FileInputStream iput=new FileInputStream(file1);
			FileOutputStream oput=new FileOutputStream(file2);
			FileInputStream iput1=new FileInputStream(file2);
			byte[] byt=new byte[(int)file1.length()];
			iput.read(byt);
			String str1=new String(byt);
			oput.write(byt);
			oput.close();
			byte[] byt2=new byte[(int)file2.length()];
			iput1.read(byt2);
			String str2=new String(byt2);
			if(str1.equals(str2)) {
				System.out.println("文件复制成功!");
			}
			iput.close();
			iput1.close();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}

运行截图:

posted @ 2020-01-07 21:44  z全  阅读(150)  评论(0)    收藏  举报