`

java IO类操作

阅读更多

java的IO类操作主要包括如下几类

 1、File类的使用。

 2、字节操作流:OutputStream、InputStream

 3、字符操作流:Reader、Writer

 4、对象序列化:serializable

(1)File类

public class File extends Object implements Serizliable Comparable<File>

        从定义看,File类是Object的直接子类,同时它继承了Comparable接口可以进行数组的排序。

File类的操作包括文件的创建、删除、重命名、得到路径、创建时间等,以下是文件操作常用的函数。

 File类的操作:

(1)创建文件,注意File.separator可以解决跨操作系统的问题。

        下面的例子是一创建一个文件,如果该文件存在则删除,否则创建该文件。

/**
 * 
 * @功能
 * @author 创建人 gao_jie
 * @date 创建日期 Oct 24, 2009
 * @version 1.0
 * 
 */
public class FileDemo1 {
	public static void main(String[] args) {
		File file = new File("D:" + File.separator + "test.txt");
		if (file.exists()) {
			file.delete();
		} else {
			try {
				file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

 (2)文件的类型函数

       file.isFile(); //判断是不是文件

       file.isDirectory();//判断是不是目录

(3)列出目录的内容

        pulbic String[] list();//列出所有文件名和目录名

        public File[] listFiles();//列出所有文件和目录

(2)字节操作流(btyle)

 (1)字节输出流OutputStream



 

/**
 * 
 * @功能
 * @author 创建人 gao_jie
 * @date 创建日期 Oct 24, 2009
 * @version 1.0
 * 
 */
public class FileDemo1 {
	public static void main(String[] args) {
		File file = new File("D:" + File.separator + "test.txt");//指定要操作的文件
		OutputStream out=null;//定义字节流输出对象
		try {
			//out= new FileOutputStream(file,true);//是否字节追加函数
			out= new FileOutputStream(file);//获取实际的字节流输出对象,内容覆盖
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		String  info="hello";//要输入的内容
		byte[] b=info.getBytes();//将字符转化为字节数组
		try {
			out.write(b);
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 (2)字节输入流InputStream


public class FileDemo1 {
	public static void main(String[] args) {
		File file = new File("D:" + File.separator + "test.txt");//指定要操作的文件
		InputStream In=null;//定义字节流输入对象
		try {
			//out= new FileOutputStream(file,true);//是否字节追加函数
			In= new FileInputStream(file);//获取实际的字节流输入对象
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		int len=0;//输入数组长度
		byte[] b=new byte[1024];//开辟空间,读取内容
		//byte[] b=new byte[(int)file.length()];//根据文件大小开辟空间
		try {
			len=In.read(b);//读取
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		try {
			In.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println(new String(b,0,len));
	}
}

 (3)字符输出流Write

 

public class FileDemo1 {
	public static void main(String[] args) {
		File file = new File("D:" + File.separator + "test.txt");// 指定要操作的文件
		Writer write = null;// 定义字符输出流
		try {
			write = new FileWriter(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String infor = "hello,heiehiehieh";
		try {
			write.write(infor);
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			write.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 (4)字符输入流Reader



 

public class FileDemo1 {
	public static void main(String[] args) {
		File file = new File("D:" + File.separator + "test.txt");// 指定要操作的文件
		Reader read = null;// 定义字符输入流
		try {
			read = new FileReader(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String infor = "hello,heiehiehieh";
		char[] b=new char[1024];//设置字符的长度
		try {
			int len=read.read(b);
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			read.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 (5)字节流和字符流的区别(重点)

      字节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。因此在输出时,字节流不调用colse()方法时,信息已经输出了,而字符流只有在调用close()方法关闭缓冲区时,信息才输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。

(6)转换流:在io中还存在一类是转换流,将字节流转换为字符流,同时可以将字符流转化为字节流。

OutputStreamWriter(OutStream out):j将字节流以字符流输出。

InputStreamReader(InputStream in):将字节流以字符流输入。

(7)打印流 PrintStream

      在操作中要求输出信息时,可以采用PrintStream进行输出,它包括PrintWrite和PrintReader

 (3)对象序列化

       对象序列化是指将一个对象可以转化为二进制的byte流,可以以文件的方式进行保存。

       将对象保存在文件的操作叫做对象的序列化操作。

       将对象从文件中恢复的操作叫做反序列化操作。

一个对象如果要能序列化,它必须继承Serizliable。在实现序列化是则需要ObjectOurputStream完成,而需要反序列化时则采用ObjectInputStream。

 

 transient关键字:变量声明为Transient后,该变量不可序列化。

(4)内存流

        在项目的开发过程中,有时希望只产生临时文件,将信息输出的内存中,此时会用到内存流,内存流基本方法如下:

 

public class FileDemo1 {
	public static void main(String[] args) {
		String infor = "hello";
		// 所有的内容向内存中输入
		InputStream input = new ByteArrayInputStream(infor.getBytes());
		// 所有内存的内容由outputStream输出
		OutputStream out = new ByteArrayOutputStream();
		int temp = 0;
		try {
			while ((temp = input.read()) != -1) {
				char c = Character.toUpperCase((char) temp);
				out.write(c);//从内存中输出,所有的内容都保存在ByteArrayOutputStream中
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			input.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println(out.toString());
	}
}

(5)System类对IO的支持



 (6)缓存读取

 

  • 大小: 91 KB
  • 大小: 31.4 KB
  • 大小: 111.8 KB
  • 1.pdf (407.9 KB)
  • 下载次数: 63
  • 2.pdf (551.3 KB)
  • 下载次数: 72
  • 大小: 79.8 KB
  • 大小: 82.5 KB
  • 大小: 53 KB
  • 大小: 38.3 KB
  • 大小: 42.4 KB
  • 大小: 51 KB
  • 大小: 36.3 KB
  • 大小: 100.4 KB
分享到:
评论

相关推荐

    java IO 类层次图

    Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括但不限于文件读写、网络通信等。本文将通过分析一张清晰明了的Java IO类层次图,详细介绍Java IO体系中的主要类及其关系。 #### 二、Java IO 类层次...

    Java IO处理类的汇总

    Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...

    Java IO 工具类大全

    File类是Java IO中的基础类,它主要用于文件和目录的创建、删除、重命名以及属性查询等操作。例如,你可以使用`new File("path")`创建一个File对象,然后调用`exists()`检查文件是否存在,`mkdirs()`创建多级目录,`...

    java io 结构图

    在Java IO结构图中,通常会展示这些类之间的继承关系、类的功能以及它们如何协作完成各种IO操作。例如,`Reader` 和 `Writer` 会位于图的顶部,下面是它们的子类,如 `BufferedReader` 和 `BufferedWriter`。然后是...

    javaIO操作简单例子

    下面是一个简单的Java IO操作示例,展示如何使用InputStream和FileOutputStream进行文件的复制: ```java import java.io.*; public class SimpleIOTest { public static void main(String[] args) { try { ...

    java的io操作

    Java的IO操作是Java编程中不可或缺的一部分,它允许程序与外部存储设备进行交互,如读取文件、写入文件、创建文件夹等。在Java中,`java.io`包提供了大量的类和接口来支持这些功能。 首先,我们来看如何创建一个新...

    Java IO应届生培训讲义

    用户应用程序通常作为IO操作的调用者,通过系统调用请求操作系统执行各种输入输出任务。而操作系统作为真正的执行者,负责完成从外部设备加载数据到内核缓冲区,再从内核缓冲区拷贝到进程缓冲区的操作。 3. 同步/...

    提高Java IO操作的性能

    提高Java IO操作的性能 虽然抱怨Java程序性能不佳的呼声由来已久,但实际上,如果开发者在整个开发周期内都能够关注性能问题,Java程序完全可以和C/C++程序一样快。本文分析了Java IO应用中一些常见的性能问题。

    javaIo操作的基础代码

    Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...

    JavaIO大部分类

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出...通过理解并熟练运用这些Java IO类和概念,开发者能够构建出高效的数据读写系统,无论是简单的文件操作还是复杂的网络通信,Java IO都能提供强大的支持。

    Java io的基本操作很全面的代码呀

    6. **FileReader/FileWriter, FileInputStream/FileOutputStream**:这些是直接操作文件的流,是最基础的I/O操作类。 7. **PipedInputStream/PipedOutputStream**:管道流,用于线程间的通信。 8. **...

    java IO.chm

    这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、文件操作、对象序列化以及NIO(非阻塞IO)等多个方面进行展开。 一、Java IO体系结构 Java IO体系是Java平台中用于处理数据输入...

    java io 系列操作代码练习 Java学习资料

    总结,Java IO是Java开发中的基础技能,理解和熟练掌握IO操作对于任何Java开发者都至关重要。通过这个“java io 系列操作代码练习”,你可以系统地学习和实践Java IO的各种操作,从而在实际工作中更加游刃有余。

    Java IO知识点

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的...

    JavaIO流详解归纳.pdf

    JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...

    JAVA IO操作类讲解

    在Java中,IO操作涉及到文件、流、字符编码、缓冲区等多个概念,为开发者提供了丰富的类库来实现各种复杂的IO操作。 ### 1. 文件操作 在Java中,文件操作主要通过`java.io.File`类完成。File类提供创建、删除、...

Global site tag (gtag.js) - Google Analytics