java io笔记_Java IO笔记

第一:File类(主要获取文件名,判断文件是否存在,创建或者删除文件)

举个例子,代码如下:

importjava.io.File;public classMain{public static voidmain (String[] args) {

File file=new File("F:\\test");

GetFileName(file);

}public static voidGetFileName(File file){if(file.exists()) {

File[] files=file.listFiles();if (files!=null&&files.length>0) {for(File s:files) {if(s.isDirectory()) {

System.out.println(s);

GetFileName(s);

}elseSystem.out.println(s);

}

}

}else{

file.mkdir();

}

}

}

这个是File类的一个遍历的作用,结果是:

1626770418a3b6aea364c9dcaaa3b918.png

当然我的文件夹是这样的

c281bed1c28d64f99c62042220718875.png

以上代码里面我们需要知道的一些知识点:

//创建File类的对象,输入路径

File file=new File("F:\\test");//判断文件是否存在,可以是文件夹也可以是文档

file.exists();//判断文件是否是文件夹

file.isDirectory();//获取该文件夹目录下的所有文件,必须是文件夹才可以执行此操作

File[] files=file.listFiles();//创建文件

file.mkdir(); //创建文件夹

file.createNewFile(); //创建文件

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

这些是一些最基础的,当然还有一些其他的方法,就不深入的介绍

第二:RandomAccessFile类(主要是读文件内容,写文件内容)

第一步,我们已经学习了如何的去创建删除文件,如何获取文件名称。这一步来操作,如何在文件内写点东西,读点东西。

Java里面写东西,本身就是byte byte的结合,而且会有一个指针会记录写的数据的位置。而且写完东西之后,必须要关闭,否则会有异常问题。

我们看代码:

importjava.io.File;importjava.io.IOException;importjava.io.RandomAccessFile;public classMain{public static void main (String[] args) throwsIOException {//创建File类的对象,输入路径

File file=new File("F:\\test\\蜀云泉.txt");if(file.exists()) {//打开我们的文件,选择模式。rw是读写模式,r是只读模式。这个会有IO异常,我们已经在方法哪里抛出异常

RandomAccessFile raf=new RandomAccessFile(file,"rw");//写东西,可能会出现乱码,所以最好指定编码格式。

raf.writeUTF("许嵩是最佳歌手");

System.out.println(raf.length());//读东西,先把指针放到开头

raf.seek(0);

String content=raf.readUTF();

System.out.println(content);

raf.seek(raf.length());

raf.writeUTF("追加内容");

raf.close();

}

}

}

结果:

14b9943568e7bc7e61a178f28095898d.png

是UTF编码是一个 汉字,3个字节。之所以是23是因为自动写进去了一个符号?,看看结果

385f2383a7cfc47ccef05a4626b391d6.png

可能是哪里自己加的吧。。。。应该是writeUTF这个方法自己加的,我用gbk编码就没有这种情况。

其实write方法有很多种可能的,什么先写进byte数组,在write,还有write字节什么的。我就不过多的探讨了。指针那块也很好理解,追加内容的也是。最后close一下就完事了,一定要close

第三: IO流

IO流其实分为字符流和字节流,比较重要的是 InputStream 和 OutputStream 。他们各自都有三个方法,最常用:

InputStream流

in.read();

in.read(byte[] b);

in.read(byte[] b,int off,intlen);

OutputStream流

out.write(intb);

out.write(byte[] b);

out.write(byte[] b,int off,int len);

Java里面封装了两个专门来操作文件的类,分别是 FileInputStream和FileOutputStream 他们俩继承了上面的俩。我们之间通过一个复制文件的功能的代码,来看看:

import java.io.*;public classMain {public static void main(String[] args) throwsIOException {

copy(new File("F:\\test\\蜀云泉.txt"),new File("F:\\test\\副本.txt"));

}//写一个复制文件的方法,把FileName1的数据复制到FileName2里面去

public static void copy(File FileName1, File FileName2) throwsIOException {if (!FileName1.isFile()) {throw new IllegalArgumentException("FileName1不是文件");

}if (!FileName2.isFile()) {

FileName2.createNewFile();

}

FileInputStream in= newFileInputStream(FileName1);

FileOutputStream out= newFileOutputStream(FileName2);//写一个字符数组去读

byte[] result = new byte[1024];intb;while ((b = in.read(result, 0, result.length)) != -1) {

out.write(result,0, b);

out.flush();

}

in.close();

out.close();

}

}

是不是用到上面的三个方法了,就是这么简单。学会read和write方法就行了

1e45c43338ef6c7c6c13f006876e995a.png

java.io.File类:表示了文件和目录. Window系统:表示路径使用\.但是在Java中,一根\表示转义符,我们就不得不写成:\\. String path = "D:\\JavasePros\\day11"; 路径分割使用;. Unix 系统:表示路径使用/. String path = "D:/JavasePros/day11"; 路径分割使用:.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值