`
k_lb
  • 浏览: 834069 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

JAVA IO

 
阅读更多

在 Java IO实际上很好的体现了Java 的面向对象的设计思想

一个接口或抽象类的具体行为由子类决定,那么根据实例化子类的不同完成的功能也不同

Java IO中的所有操作类都放在java.io 包中

主要的类和接口是:File、InputStream、OutputStream、Reader、Writer、Seralzable 接口


File

File 类在整个java.io 包中是一个独立的类,此类的主要功能是完成与平台无关的文件操作,例如:创建文件、删除文件等等


创建文件

例如,现在要在D盘上创建一个demo.txt的文件

创建文件的方法:public bollean createNewFile() throws Exception


package org.iodemo;

import java.io.File;
import java.io.IOException;

public class IoDemo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:\\1.txt");
		try{
			file.createNewFile();
		}catch(IOException e){
			e.printStackTrace();
		}
	}

}

程序本身只是作为一个文件的创建出现,而如果要使用具体的内容的输出,则必须依靠IO操作流。


删除文件


如果要想删除文件则使用:public bollean delete()


package org.iodemo;

import java.io.File;
import java.io.IOException;

public class IoDemo02 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:\\1.txt");
		file.delete();
	}

}

以上的两个操作确实完成了文件的创建及删除,可以代码却同样存在问题。

在各个操作系统中,文件的分隔符是不一样的:

windows:\

linux:/

Java 本身属于跨平台的语言,那么应该可以适应各个不同的平台要求。那么为了解决可以自动适应不同系统的分隔符要求,所以在File类中提供了以下几个常量:

路径分隔符: public static final String pathSeparator “;”

分隔符: public static final String separator "\" 或者 "/"

所以,对于实际的开发来讲,必须使用这样的常量进行声明


判断文件是否存在

提供以下的方法:public boolean exists()

package org.iodemo;

import java.io.File;
import java.io.IOException;

public class IoDemo03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:\\1.txt");
		if (file.exists()){
			file.delete();
		}else{
			try {
				file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}

那么,此时就可以利用此种特点完成以下的一个要求:

要求编写一个程序,此程序的主要功能如下,如果文件存在,则删除,如果文件不存在则创建一个新的文件



判断路径是文件还是文件夹

在程序中可以使用如下的方法进行判断

判断是否是文件夹: public boolean isDirectory()

判断是否是文件:public bollean isFile()


package org.iodemo;

import java.io.File;

public class IoDemo05 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:"+File.separator+"a.txt");
		System.out.println(file.isDirectory());
		System.out.println(file.isFile());
	}

}

列出目录中的内容

在File 类中提供了以下的两个方法进行目录的列表操作

public String[] list()

public File[] listFiles()


package org.iodemo;

import java.io.File;

public class IoDemo08 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:"+File.separator+"Download");
		String[] files = file.list();
		for (int i=0;i<files.length;i++){
			System.out.println(files[i]);
		}
	}

}

此处列出来的只是一个目录下的文件或文件夹名称而已


package org.iodemo;

import java.io.File;

public class IoDemo08 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:"+File.separator+"Download");
		File[] files = file.listFiles();
		for (int i=0;i<files.length;i++){
			System.out.println(files[i]);
		}
	}

}

这两个操作都同样属于列表的操作,但是后者却可以列出完整的路径,实际上此时,如果为更加清楚的表示出列出的是路径


package org.iodemo;

import java.io.File;

public class IoDemo08 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:"+File.separator+"Download");
		File[] files = file.listFiles();
		for (int i=0;i<files.length;i++){
			System.out.println(files[i].getParent()+"-->"+files[i].getPath());
		}
	}

}

如果要想操作文件,则肯定使用后者最为方便,因为可以找到File类的对象功能


创建目录

使用mkdir()方法即可


package org.iodemo;

import java.io.File;

public class IoDemo06 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:\\123");
		file.mkdir();

	}

}

在windows 中有很多文件的后缀,例如:txt、doc、jpg ,实际上这些文件的后缀与文件本身的内容没有任何的关系,加入后缀只是为了方便程序的管理而已

当然,在创建的时候也可以在一个文件夹下创建文件


package org.iodemo;

import java.io.File;
import java.io.IOException;

public class IoDemo09 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D"+File.separator+"Demo"+File.separator+"test.demo");
                file.getParentFile().mkdir();
		try {
			file.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


package org.iodemo;

import java.io.File;

public class IoDemo07 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("D:"+File.separator);
		getFile(file);
	}
	
	public static void getFile(File f){
		if (f.isDirectory()){
			File lists[] = f.listFiles();
			if (lists != null){
				for (int i=0;i<lists.length;i++){
						getFile(lists[i]);
					}
			}
		}
		System.out.println(f);
	}

}





分享到:
评论

相关推荐

    Java IO应届生培训讲义

    Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...

    Java IO知识点

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

    java IO教程,java IO教程,java IO教程

    java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...

    java io 结构图

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...

    Java IO_NIO

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...

    java IO.chm

    《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...

    Java教程之javaIO详解

    Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...

    Java IO处理类的汇总

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

    Java IO 编程集合

    Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...

    JAVA IO流技术

    Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    java io.pdf

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...

    JavaIO流详解归纳.pdf

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

    javaIo操作的基础代码

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

    Java IO 与 装饰模式

    Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...

    JAVA IO流缓冲字节流缓冲字符流等流经典代码示例加注释总结.rar

    2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。

    java io流 案例

    Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...

    java io流学习笔记1

    Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...

    Java IO 工具类大全

    Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...

Global site tag (gtag.js) - Google Analytics