在 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的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...
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(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...
Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...
JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...