java.io包的file_Java中的File类和IO包中的其他流

File类(Package java.io)

用于操作文件的类。

常用方法:1.构造函数:public File​(String pathname);//传入文件路径和文件名;

2.public boolean isFile();//判断传入的路径是否是文件;

3.public boolean createNewFile() throws IOException;//创建文件,如果文件存在则创建失败,和IO流不一样;

4.public boolean isDirectory();//判断传入的路径是否是文件夹;

5.public boolean mkdirs();//创建多级目录,如果目录存在则创建失败;

6.public boolean delete();//删除失败返回false;

7.public void deleteOnExit();//在程序退出时删除指定文件;

8.public boolean exists();//判断文件或文件夹是否存在;

packagesecond.study;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;/*** 将文件夹的绝对路径存放到指定文件中

*

*@paramargs*/

public classTest {public static void main(String[] args) throwsIOException {

File dir= new File("F:\\JAVA_study\\代码");

List list = new ArrayList();if (!dir.exists()) {throw new RuntimeException("文件夹不存在");

}

file2List(dir, list);

File desFile= new File(dir, "dirname.txt");

list2File(list, desFile.toString());

}/*** 将文件夹中的内容存放到制定集合中

*

*@paramdir

*@paramlist*/

public static void file2List(File dir, Listlist) {

File[] files=dir.listFiles();for(File file : files) {if(file.isDirectory()) {

file2List(file, list);

}else{

list.add(file);

}

}

}/*** 将列表中的文件存放到指定文件中

*@paramlist

*@paramdesString*/

public static void list2File(Listlist, String desString) {

BufferedWriter bufw= null;try{

bufw= new BufferedWriter(newFileWriter(desString));for(File file : list) {

bufw.write(file.getAbsolutePath());

bufw.newLine();

bufw.flush();

}

}catch(Exception ex) {throw new RuntimeException("目的地文件创建错误");

}finally{try{if (bufw != null)

bufw.close();

}catch(Exception ex) {throw new RuntimeException("目的地文件关闭错误");

}

}

}

}

对象流(ObjectInputStream,ObjectOutputStream)

也就是对象的持久化

ObjectInputStream

主要方法:1.构造方法:public ObjectInputStream​(InputStream in) throws IOException;//将流与对象文件关联;

2.public final Object readObject() throws IOException, ClassNotFoundException;//读文件中的对象;

ObjectOutputStream

主要方法:1.构造方法:public ObjectOutputStream​(OutputStream out) throws IOException;//将将流与对象文件关联;

2.public final void writeObject​(Object obj) throws IOException;//将对象写入到文件中;

packagesecond.study;importjava.io.Serializable;public class Person implementsSerializable{//目前理解:一般应该是不覆盖的,但是不覆盖eclipse会有黄叹号。

private static final long serialVersionUID = 1L;privateString name;//如果不希望该值别序列化,可以使用transient关键字。

transient private intage;//现在可以序列化方法区内的数据了?

static String country = "cn";public Person(String name, intage, String country) {super();this.name =name;this.age =age;

Person.country=country;

}

@OverridepublicString toString() {return "Person [name=" + name + ", age=" + age + ", country=" + country + "]";

}

}

packagesecond.study;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;public classTest {public static void main(String[] args) throwsException {

writeObj();

readObj();

}public static void writeObj() throwsException {

ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("obj.txt"));

oos.writeObject(new Person("Zhangsan", 20, "kr"));

oos.close();

}public static void readObj() throwsException {

ObjectInputStream oin= new ObjectInputStream(new FileInputStream("obj.txt"));

Person p=(Person)oin.readObject();

oin.close();

System.out.println(p);

}

}

RandomAccessFile

该类不是IO体系中的子类,而是直接继承Object类。但是它是IO包中的成员,因为它具备读写方法。其内部封装了一个数组,可以通过指针对数组的元素进行操作,可以通过getFilePointer()方法获取指针的位置,同时可以使用seek​()方法设置指针的位置。

主要方法:1.构造函数:public RandomAccessFile​(File file, String mode) throws FileNotFoundException;//只能操作文件,mode:"r","rw","rws","rwd"。

2.构造函数:public RandomAccessFile​(

3.public long getFilePointer() throws

4.public void seek​(long pos) throws

5.public int skipBytes​(int n) throws IOException;//跳过字节数,返回实际跳过的字节数

DataInputStream(java.io)

用于操作基本数据类型。可以直接将基本数据类型写入文件中,而不必将基本数据类型转换成字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值