`
文昌平蓝杰
  • 浏览: 56115 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

FIle类与IO流

阅读更多

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中的一些方法的调用,值得注意的是,各种流在创建过后,最后一定要记得关闭,否则会有一部分文件依然在缓存中未被写入。


分享到:
评论

相关推荐

    08.会员版(2.0)-就业课(2.0)-File类与IO流.zip

    会员版(2.0)-就业课(2.0)-File类与IO流.zip"这个压缩包中,包含了一系列关于这两个主题的教程,旨在帮助初学者和有经验的开发者更深入地理解如何在Java环境中进行文件操作和流处理。 **File类**: File类是Java.io...

    IO流 javaio java 流

    Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又可以进一步细分为输入流(InputStream/Reader)和输出流(OutputStream/Writer)...

    Java的IO流讲解代码: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型

    该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用示例,旨在帮助理解和掌握Java中的输入输出操作。 包含: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、...

    Java实现文件复制,File文件读取,写入,IO流的读取写入

    在Java编程语言中,文件操作是一项基础且至关...以上就是关于"Java实现文件复制,File文件读取,写入,IO流的读取写入"的主要知识点。通过理解并熟练应用这些概念和方法,开发者可以有效地处理Java环境中的文件操作。

    java中File相关的类和IO流的知识

    在这个主题中,我们将深入探讨File类以及与之相关的IO流。 首先,File类主要用于创建、读取、删除文件和目录。它提供了一种抽象的方式来表示文件和目录的路径,使得代码可以在不同操作系统之间具有一定的可移植性。...

    java中IO流里面的关于File的讲解源码

    当我们谈论`File`类与IO流的结合时,主要是指使用`File`对象来读取、写入或操作文件内容。 IO流(Input/Output Stream)是Java中处理数据输入和输出的一种机制,分为字节流和字符流两大类。字节流处理的是字节数据...

    IO流pdf宝典

    #### 四、字节流与字符流的区别 1. **字节流**:直接处理字节,适用于处理任何类型的数据,包括文本、图像、音频等。 2. **字符流**:处理字符数据,适用于处理纯文本数据。字符流在内部使用字节流,并且会根据指定...

    day34IO流File类输入输出流_nan_

    在“day34IO流File类输入输出流”这个主题中,我们将深入探讨`File`类的使用以及它与I/O流的结合。 1. **File类的基本概念** - `File`对象代表操作系统中的一个实际文件或目录路径。它并不存储文件内容,而是作为...

    IO流自用模板

    IO流分为两大类:字节流(处理字节数据)和字符流(处理字符数据)。下面将详细介绍IO流的基本概念、分类、常用类以及在实际开发中的应用模板。 1. 基本概念: - 字节流:字节流处理的数据单位是字节,包括...

    IO流宝典.pdf

    这些基本流类是所有其他IO流类的基础。 输入流用于将数据从源(如硬盘、网络、内存等)读取到程序中,输出流则负责将数据从程序写入目的地。Java提供了许多不同的流类来适应各种特定需求,例如FileInputStream和...

    Java基础IO流之File类的使用

    Java基础IO流之File类的使用 File类是Java中的一个基础类,用于处理文件和目录操作。下面是File类的使用详解: File类的作用 File类的作用是提供一个抽象表示形式,用于描述文件和目录的路径,并提供了一些基本的...

    Java基础篇:IO流.pdf

    本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...

    Java中文件IO流.pdf

    public class FileIO { public static void main(String args[]) { try { File inFile = new File("infile.txt"); File outFile = new File("outfile.txt"); FileInputStream in = new FileInputStream(inFile)...

    IO流结构图_io_java_思维导图_

    在本篇文章中,我们将深入探讨Java IO流的基本结构、主要类和接口,以及如何使用它们来操作文件。"IO流结构图_io_java_思维导图_" 提供了一个清晰的可视化工具,帮助开发者理解这一复杂主题。 首先,让我们了解一下...

    java之io流实例

    IO流在Java中分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理的是Unicode编码的字符,而字节流则处理基本的8位字节数据。这两类流又各自分为输入流(Input Stream)和输出流(Output ...

    Java学生管理系统GUI+IO流

    Java学生管理系统GUI+IO流是一个适合初学者的项目,它主要展示了如何在没有数据库支持的情况下,利用Java的图形用户界面(GUI)和输入输出(IO)流来实现一个简易的学生和教师信息管理功能。这个系统可能包括账户...

    javaIO流File类的使用共3页.pdf.zip

    Java IO流中的File类是Java标准库中处理文件操作的核心类,它位于`java.io`包下。File类主要用于文件和目录的创建、删除、重命名等操作,以及获取文件的相关信息,如路径、大小、最后修改时间等。在Java程序中,File...

    java中的IO流操作大全

    在Java中,IO流操作是用于处理输入与输出的抽象机制,它提供了在不同的数据源和目标之间传输数据的手段。流的概念最早起源于UNIX系统中的管道概念,是一个连续的数据流,可以理解为水流,从源端流向目的端。 一、流...

    io流详解代码

    在Java编程语言中,`IO流`(Input/Output流)是处理数据输入与输出的核心概念。`IO流`允许程序读取或写入数据到各种类型的源和目标,如键盘、显示器、文件、网络连接等。本部分的io流详解内容主要涵盖以下几个方面:...

    map集合以及IO流

    `IO流`分为两类:字节流(Byte Stream)和字符流(Character Stream)。 1. **字节流**:处理原始的字节数据,包括`InputStream`和`OutputStream`作为抽象基类,以及它们的子类如`FileInputStream`和`...

Global site tag (gtag.js) - Google Analytics