java.io.File类是系统自带的类,可以对文件进行创建,删除,查找,判断等操作。
1.文件的概念
(1)文件名,文件名包括文件本身名称和扩展名,扩展名并不影响文件本身 ,他只是可以使文件有一个默认的打开方式,并不影响文件本身。
(2)文件格式,文件的格式是把一个文件通过不同的顺序或方法或形式存储起来的文件。跟打开方式相对应,每一种文件格式都有一种自己的打开方式,根据自己的顺序和方法和形式依次将文件呈现出来。一般用扩展名加以识别。
(3)文件分为目录文件和真实文件两种。
2.File file = new File(namepath);//在namepath目录下创建对象
file.createNewFile(); //利用对象创建一个实际的File文件
boolean bool = file.exists(); //判断file文件是否存在,并把结果返回
if(bool){
//如果文件是个目录
if(file.isDirectory){
System.out.println("文件是个目录");
}
//日过文件是个真实的文件
else if(file.isFile){
System.out.println("文件是个真实文件");
}
}
//如果文件不存在
else{
System.out.println("创建文件失败");
}
以上是一个文件的基本处理方式,他反应了文件在程序中的处理方法,所以,操作系统对文件的处理不过是这样的一种方式的形象化。
3.利用递归遍历文件目录中的所有文件。
递归思想是一种很重要的思想,因为有时候我们不知道循环需要什么时候结束,并且每一次都是想通规律是,就可以利用递归。
private int countFile(String path) {
int count = 0;
//根据地址实例化文件
File file = new File(path);
//把文件的子文件用数组存储起来
File[] lf = file.listFiles();
//判断 即递归循环出口
if(lf==null||lf.length==0){
return 0;
}
//用循环找出文件个数
for(int i=0;i<lf.length;i++){
//如果是文件目录就进行深沉递归
if(lf[i].isDirectory()){
count += countFile(lf[i].getAbsolutePath());
}
//如果是文件名就直接打印出来
else if(lf[i].isFile()||file.isHidden()){
count++;
ta.append("文件位置为"+lf[i].getAbsolutePath()+"\n");
}
}
return count;
}
IO流的解释:
对文件的读取与复制等功能,则要用到流的概念。
java中有IO,输入输出流:可以把一个文件的内容读出来,也可以把内容写入一个文件。
1.InputStream和OutputStream是最小的数据单位的流,一个字节为一个单位。
2.BufferedInputStream和BufferedOutputStream提供缓冲的缓冲流。
3.DataInputStream和DataOutputStream是基于具体数据的流。
4.ObjectInputStream和ObjectOutputStream是基于对象的流。
以上流从小到大,需要上一级的支持才能使用,比如未创建字节流,就无法创建缓冲流,缓冲流的创建以字节流对象为参数,依次类推。
如:
//创建文件输入流对象 为了方便统一,将其转化为父类对象
InputStream IS = new FileInputStream(file);
//根据字节流创建输入缓冲流
BufferedInputStream bis = new BufferedInputStream(IS);
//根据缓冲流创建数据流
DataInputStream dis = new DataInputStream(bis);
//根据数据流创建对象流
ObjectInputStream ois = new ObjectInputStream(dis);
这样一级一级往上创建。
这些InputStream都有读取的方法可以读取文件内容,相应的OutputStream也有对应的方法写入内容:
private void copyFile(String path, String newpath) {
// TODO Auto-generated method stub
//根据地址创建文件
File file = new File(path);
File newfile = new File(newpath);
try {
//创建输入流对象
InputStream IS = new FileInputStream(file);
//创建输出流对象
OutputStream OS = new FileOutputStream(newfile);
//构造输入缓冲流
BufferedInputStream bis = new BufferedInputStream(IS);
//构造输出缓冲流
BufferedOutputStream bos = new BufferedOutputStream(OS);
//求出文件长度
int length = bis.available();
byte[] arriy = new byte[length];
//把文件读入到固定的数组中去
bis.read(arriy);
//将数组内容转化成字符串
String str = new String(arriy);
//将数组内容读入到指定文件时
bos.write(arriy);
//关闭各种流
bos.close();
OS.close();
bis.close();
IS.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这样就就实现了一个基本的复制功能,其实IO也就是用于数据的传输,只要需要读写的地方,就会用到IO着一块,以上其实也是IO中的一些方法的调用,值得注意的是,各种流在创建过后,最后一定要记得关闭,否则会有一部分文件依然在缓存中未被写入。
分享到:
相关推荐
一个基础的java材料,包含了文件操作等教程,整体很好,可以学习,包含了io流操作等基本信息,还有缓存流/转换流等基本信息
该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用示例,旨在帮助理解和掌握Java中的输入输出操作。 包含: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、...
使用File文件IO流。了解FILE基础以及所有的file相关代码、内容很详细可以很快的就让你明白File类的一些用法。包含了大概10个代码。
Java实现文件复制,File文件读取,写入,IO流的读取写入
Java基础IO流之File类的使用
javaIO流File类的使用共3页.pdf.zip
使用文件IO流。 了解FILE的基础知识,内容非常详细,您可以快速了解File类。 所有与IO相关的常用类,以及该类的抽象和具体关系
File关于IO流的源码,详细的讲解也有,很多的注释,适合初学者,本人也是初学者,慢慢学
Java实验指导(4)-io流.pdf
文件操作 IO流(File FileOutputStream OutputStreamWrite BufferWrite ......)代码及注释详解
javaIO的基础File类,适合小小白啥都不会的第一次学Java的小朋友相信看完这几个文档和代码你就大概知道IO在做什么了。然后后面再继续学习。基本上不管学什么都是一个记忆和积累的过程小小白白们共勉。
主要介绍了Java IO流 File类的常用API实例的相关资料,需要的朋友参考下吧
Java基础
JSP实现文件上传。type="file" 然后后台通过JAVA的io流具体实现
7.字符流与字节流转换 转换流的特点: 其是字符流和字节流之间的桥梁 可对读取到的字节数据经过指定编码转换成字符 可对读取到的字符数据经过指定编码转换成字节 何时使用转换流? 当字节和字符之间有转换动作时;...
IO流与异常的基本练习实验 I/O流的概述 流的分类 File类 标准输入与输出 文件输入与输出 异常的概述 异常的分类 异常的处理 一: 掌握字节流的文件读取 实验要求 在D盘目录下创建HelloWorld.java 使用字节流的方式...
Try块里面存放的是有可能发生异常的代码,通常和catch块一起使用,catch块用于处理try块中抛出的异常,finally块不是必须的,通常将释放资源(例如IO流的close方法)的代码放到finally块里面 注意:finally和Final还有...
java基础——IO流及File-RandomAccessFile对象.docx
IO流,file类,IO编程练习题,IO编程面试题,InputStream,OutputStream等等流操作