File类

java.io.File

File类只用于表示文件(目录)的信息,不能用于文件内容的访问。

 

File类的常用方法

package com.test;

 

import java.io.File;

import java.io.IOException;

 

public class FileDemo {

public static void main(String[] args) {

File file = new File("/Users/Easen/Desktop/java_io");

System.out.println(File.pathSeparator//盘符

+"Users"

+File.separator //设置分隔符

+"Easen");

if (file.exists()/*判断文件目录是否存在*/) {

file.mkdir();//创建文件目录

}else {

file.delete();//删除文件目录

}

file.isDirectory();//判断文件是否是一个目录 

file.isFile();//判断是否是一个文件

 

File file1 = new File("/Users/Easen/Desktop/ss/d");

File file2 = new File("/Users/Easen/Desktop/","t.txt");

if (!file2.exists()) {

try {

file2.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else {

file2.delete();

}

System.out.println(file2);//打印的是file.toString的内容 /Users/Easen/Desktop/t.txt

System.out.println(file2.getAbsolutePath());//抽象的路径 /Users/Easen/Desktop/t.txt

System.out.println(file1.getName());//文件名test.txt

System.out.println(file1.getParent());//父目录 /Users/Easen/Desktop 

System.out.println(file2.getParentFile().getName()); //父目录 /Users/Easen/Desktop 

 

if (!file1.exists()) {

file1.mkdirs();//创建多级目录

}

 

}

}

 

 

File文件名和目录名的读取

package com.test;

 

import java.io.File;

import java.io.IOException;

 

//列出File的一些常用操作

public class FileUtils {

/**

* @param file

* @throws IOException

*/

public static void listDirectory(File file)throws IOException {

if (!file.exists()) {

throw new IllegalArgumentException("目录"+file+"不存在");

}

if (!file.isDirectory()) {

throw new IllegalArgumentException(file+"不是目录");

}

/**

*/

String[] filenames = file.list();//返回的是字符串数组(.list()列出当前目录下的子目录名称和文件名,不包含子目录下的文件)

for (String string : filenames) {

System.out.println(string);

}

/*

* 如果要遍历子目录下的内容就需要构造出File对象做递归操作,File提供了直接返回File对象的方法

*/

File[] files = file.listFiles();//直接返回的是子目录的对象

if (files!=null&&files.length>0) {

for (File file2 : files) {

if (file2.isDirectory()) {

//做递归调用

listDirectory(file2);

} else {

System.out.println(file2);

}

}

}

}

}

测试类:

package com.test;

 

import java.io.File;

import java.io.IOException;

 

public class FileUtilsTest {

public static void main(String[] args) {

try {

FileUtils.listDirectory(new File("/Users/Easen/Downloads/download/IO"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

 

RandomAccessFile java提供的对文件内容的访问, 既可以读文件,也可以写文件。

RandomAccessFile 支持随机访问文件,可以访问文件的任意位置

 

1)java文件模型

在硬盘上的文件是byte byte byte存储的,是数据的集合

2)打开文件:

有两种模式”rw”(读写),”r”(只读)

RandomAccessFile raf = new RandomAccessFile (file,”rw”);

文件指针,打开文件时指针在开头 pointer = 0;

3)写方法

raf.write(int) —>只能写一个字节(后8位),同时指针指向下一个位置,准备再次写入

4)读方法

int b = raf.read() —> 读一个字节

5)文件读写完成以后一定要关闭

 

posted @ 2016-12-08 21:21  迷茫的路上  阅读(152)  评论(0)    收藏  举报