java中的IO流操作大全

合集下载

ioutils常用方法

ioutils常用方法

ioutils常用方法ioutils是Java编程语言中的一个类,它提供了一些常用的方法来处理输入和输出操作。

在本文中,我们将介绍一些ioutils常用方法,并详细说明它们的功能和用法。

1. readBytes方法readBytes方法用于从输入流中读取字节数据,并将其存储在字节数组中。

该方法的语法如下:```javapublic static byte[] readBytes(InputStream input) throws IOException```使用该方法时,我们需要传入一个输入流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将返回一个字节数组,其中包含从输入流中读取的数据。

2. write方法write方法用于将字节数组中的数据写入到输出流中。

该方法的语法如下:```javapublic static void write(byte[] data, OutputStream output) throws IOException```使用该方法时,我们需要传入一个字节数组和一个输出流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将把字节数组中的数据写入到输出流中。

3. copy方法copy方法用于将输入流中的数据复制到输出流中。

该方法的语法如下:```javapublic static long copy(InputStream input, OutputStream output) throws IOException```使用该方法时,我们需要传入一个输入流对象和一个输出流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将返回复制的字节数。

4. closeQuietly方法closeQuietly方法用于关闭输入流或输出流,而无需显式地处理可能抛出的IOException异常。

该方法的语法如下:```javapublic static void closeQuietly(Closeable closeable)```使用该方法时,我们只需要传入一个可关闭的对象作为参数,该方法将自动关闭该对象。

JavaIO流详解(三)----字节流InputStream和OutPutStream

JavaIO流详解(三)----字节流InputStream和OutPutStream

JavaIO流详解(三)----字节流InputStream和OutPutStream我们都知道在计算机中,⽆论是⽂本、图⽚、⾳频还是视频,所有的⽂件都是以⼆进制(字节)形式存在的,IO流中针对字节的输⼊输出提供了⼀系列的流,统称为字节流。

字节流是程序中最常⽤的流。

在JDK中,提供了两个抽象类InputStream和OutputStream,它们是字节流的顶级⽗类,所有的字节输⼊流都继承⾃InputStream,所有的字节输出流都继承⾃OutputStream。

既然⼆者是抽象类,那么就不能实例化,都是依赖于具体继承它们的⼦类去实现。

但⼆者抽象类中也包含它们各⾃的⽅法,如果我们先了解清楚抽象类中每⼀个⽅法的含义,那么对于后续具体的⼦类将会有⾮常⼤的帮助。

1、字节输⼊流InputStreamInputStream是所有字节输⼊流的⽗类,定义了所有字节输⼊流都具有的共同特征。

其内部提供的⽅法如下:image上图中的三个read()⽅法都是⽤来读数据的。

int read():每次读取⼀个字节,返回读取到的字节。

int read(byte[] b):每次读取b 数组长度的字节数,然后返回读取的字节的个数[注意与read() ⽅法的区别],读到末尾时返回-1。

int read(byte[] b,int off,int len):每次读取b 数组长度的字节数,从数组b 的索引为off 的位置开始,长度为len个字节。

⼩贴⼠:close⽅法,当完成流的操作时,必须调⽤此⽅法,释放系统资源。

其中InputStream的实现类FileInputStream是专门⽤于读取⽂件中的数据,通过它将⽬标设备上的数据读⼊到程序。

FileInputStream的构造⽅法:FileInputStream(File file):通过打开与实际⽂件的连接来创建⼀个FileInputStream ,该⽂件由⽂件系统中的File对象file命名。

java inputstream用法

java inputstream用法

java inputstream用法在 Java 中,`InputStream` 是一个抽象类,它表示输入流,用于从不同的数据源读取数据。

通过使用 `InputStream`,可以读取文件、网络连接、内存缓冲区等数据源中的数据。

以下是 `InputStream` 的一些常见用法:1. 创建 `InputStream` 对象:可以通过各种方法创建具体的 `InputStream` 对象,例如通过文件路径创建文件输入流,或者通过网络连接创建网络输入流。

2. 读取数据:使用 `read()` 方法从输入流中读取数据。

`read()` 方法返回读取到的字节数,如果到达流的末尾,则返回 -1。

3. 处理数据:根据需要对读取到的数据进行处理,例如将字节转换为字符、解析数据格式等。

4. 关闭输入流:使用完毕后,务必调用 `close()` 方法关闭输入流,释放相关资源。

下面是一个简单的示例,演示如何使用 `InputStream` 读取文件内容:```javaimport java.io.InputStream;import java.io.FileInputStream;public class InputStreamExample {public static void main(String[] args) {// 替换为实际的文件路径String filePath = "path/to/your/file.txt";try (InputStream inputStream = new FileInputStream(filePath)) {// 创建缓冲区byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {// 处理读取到的数据String data = new String(buffer, 0, bytesRead);System.out.println("读取到的数据:" + data);}} catch (Exception e) {e.printStackTrace();}}}```在上述示例中,创建了一个 `FileInputStream` 对象来读取文件,并使用循环逐字节地读取数据。

java bufferedinputstream 用法

java bufferedinputstream 用法

java bufferedinputstream 用法BufferedInputStream 是 Java 中的一个输入流类,它允许我们从输入源中读取数据并提供了缓冲区的支持。

以下是 BufferedInputStream 的用法和一些注意事项。

1. 创建 BufferedInputStream 对象:可以使用以下语法创建 BufferedInputStream 对象:```BufferedInputStream inputStream = new BufferedInputStream(inputStream);```其中,inputStream 是要读取的输入流对象,可以是任何输入流,如文件输入流或网络输入流。

2. 读取数据:使用 BufferedInputStream 的 read() 方法可以从输入流中读取数据。

read() 方法会返回一个整数,表示读取的字节数据。

当读取到末尾时,read() 方法返回 -1。

```int data = inputStream.read();```我们可以使用循环来反复读取输入流中的数据,直到读取到末尾(即返回 -1)为止。

3. 读取指定长度的数据:除了单个字节的读取,BufferedInputStream 还提供了读取指定长度数据的方法。

可以使用以下语法读取指定长度的数据:```byte[] buffer = new byte[1024];int bytesRead = inputStream.read(buffer);```其中,buffer 是一个字节数组,用于存储读取到的数据。

bytesRead 是实际读取到的字节数。

通过指定字节数组的长度,可以一次读取多个字节数据,提高读取效率。

4. 关闭流:在读取完数据后,需要关闭 BufferedInputStream 来释放系统资源。

可以使用以下语法关闭流对象:```inputStream.close();```需要注意的是,关闭 BufferedInputStream 时,同时也会关闭它包装的输入流对象。

Java IO详细教程

Java IO详细教程

Java I/O总结∙从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的∙Java I/O总结——OutputStream∙Java I/O总结——Reader∙Java I/O总结——Writer∙Java I/O总结——补充说明从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的?晚上睡在床上,这一小段代码在我的脑海里不断浮现,因为它 看上去有些相似(在设计模式中的看到过类似),但是实在想不起与那个模式相似了?翻开设计模式书,已经好久没有看到过本书了,说实话对这本书中的大多数还不是很了解,但是此刻看到能让我想到了,说明这个模式给我留下了深刻的影 响。

翻开书找了半天,我一直以为是Strategy,后来看了下不是的,从头看到尾,终于找到了Decorator(装饰)。

把这个设计模式又仔细读了一 遍,在这里与大家分享。

设计意图动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比较生产子类更为灵活。

设计动机有时候我们希望给某个对象增加而不是整个类增加一些功能,例如,给一个图像界面工具箱允许你对人员一个用户界面的组件添加一些特性,比如说边框,或者窗口滚动。

使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所实现。

但是这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。

一种较为灵活的方式是将组件嵌入另外一个对象中,由这个对象添加边框,我们称这个嵌入的对象为装饰。

结构代码部分我们就不详细说明,如下图所示:这张图当时好象是我学习设计模式中,看的最清楚的一张(难得啊,设计模式中的那么多图,很多当时看的时候都不是很明白),当然这张图不是我最在意的。

Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Prope。。。

Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Prope。。。

Java⾃学第10期——File类与IO流(输⼊输出流、处理流、转换流、缓冲流、Prope。

1、IO简介IO(输⼊输出)通过java.io包下的类和接⼝来⽀持,包下包括输⼊、输出两种IO流,每种输⼊输出流⼜可分为字符流和字节流两⼤类。

2、File类File类是io包下与平台⽆关的⽂件和⽬录,File能新建、删除、重命名⽂件和⽬录,不能访问⽂件本⾝,后者需要使⽤输⼊输⼊流。

2.1 构造⽅法File类的构造⽅法:File(File parent, String child) 参数:⽗路径,⼦路径根据 parent 抽象路径名和 child 路径名字符串创建⼀个新 File 实例。

File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建⼀个新 File 实例。

File(String parent, String child)根据 parent 路径名字符串和 child 路径名字符串创建⼀个新 File 实例。

File(URI uri)通过将给定的 file: URI 转换为⼀个抽象路径名来创建⼀个新的 File 实例。

2.2 静态⽅法File类静态⽅法:static String pathSeparator()与系统有关的路径分隔符,为了⽅便,它被表⽰为⼀个字符串。

static char pathSeparatorChar()与系统有关的路径分隔符。

static String separator()与系统有关的默认名称分隔符,为了⽅便,它被表⽰为⼀个字符串。

static char separatorChar()与系统有关的默认名称分隔符。

2.3 常⽤⽅法:2.3.1 获取相关public String getAbsolutePath()返回此File的绝对路径名字符串。

public String getPath()将此File转换为路径名字符串。

public String getName()返回由此File表⽰的⽂件或⽬录的名称。

Java IO流学习总结

Java IO流学习总结

Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。

即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

IO流的分类∙根据处理数据类型的不同分为:字符流和字节流∙根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。

本质其实就是基于字节流读取时,去查了指定的码表。

字节流和字符流的区别:∙读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

∙处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

结论:只要是处理纯文本数据,就优先考虑使用字符流。

除此之外都使用字节流。

输入流和输出流对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。

Java IO流对象1.输入字节流InputStream IO 中输入字节流的继承图可见上图,可以看出:1.InputStream 是所有的输入字节流的父类,它是一个抽象类。

2.ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。

PipedInputStream是从与其它线程共用的管道中读取数据,与Piped 相关的知识后续单独介绍。

3.ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。

2.输出字节流OutputStreamIO 中输出字节流的继承图可见上图,可以看出:1.OutputStream 是所有的输出字节流的父类,它是一个抽象类。

IO流之ZipInputStream和ZipOutputStream的认识及常用使用(转)。。。

IO流之ZipInputStream和ZipOutputStream的认识及常用使用(转)。。。

IO流之ZipInputStream和ZipOutputStream的认识及常⽤使⽤(转)。

ZipInputStream和ZipOutputStream定义压缩流在⽇常中经常会使⽤到zip或rar这样的压缩⽂件,更加便利了我们⽇常⽂件的传输和使⽤。

当然在java中也提供了相应的输⼊输出流来压缩和解压gzip、zip和rar这样的⽂件。

ZipInputStream“压缩⽂件输⼊流”,⽤于读取磁盘上的压缩⽂件ZipOutputStream“压缩⽂件输出流”,⽤于将程序中的压缩流写出到磁盘上。

通常需要使⽤ZipFile ZipInputStream/ZipOutputStream ZipEntry级File完成解压缩操作。

其他相似流在JAVA IO中,不仅可以实现ZIP压缩格式的输⼊、输出,也可以实现JAR及GZIP⽂件格式的压缩:JAR压缩的⽀持类保存在java.util.jar包中,常⽤的类有如下⼏个:JAR压缩输出流:JarOutputStreamJAR压缩输⼊流:JarInputStreamJAR⽂件:JARFileJAR实体:JAREntryGZIP是⽤于UNIX系统的⽂件压缩,在Linux中经常会使⽤到*.gz的⽂件,就是GZIP格式,GZIP压缩的⽀持类保存在java.util.zip包中,常⽤的类有如下⼏个:GZIP压缩输出流:GZIPOutputStreamGZIP压缩输⼊流:GZIPInputStream使⽤⽤例压缩// 压缩⼊⼝1public static void compress(String srcPath, String destPath,boolean dirFlag) throws Exception {compress(new File(srcPath), new File(destPath), dirFlag);}// 压缩⼊⼝2public static void compress(String srcPath, String destPath) throws Exception {compress(new File(srcPath), new File(destPath), DEFAULT_DIR);}// 压缩⼊⼝3public static void compress(File srcFile, File destFile, boolean dirFlag) throws Exception {compress(srcFile, new ZipOutputStream(new FileOutputStream(destFile)), dirFlag);}public static void compress(File srcFile, ZipOutputStream zos, boolean dirFlag) throws Exception {// 需要解压的压缩⽂件对象// 压缩输出流// 是否在压缩⽂件时创建⼀个⽗⽂件夹后再压缩if (srcFile.isDirectory()) {if (dirFlag) {doCompress(zos, srcFile, srcFile.getName() + File.separator);} else {doCompress(zos, srcFile, "");}} else {doCompress(zos, srcFile, "");}zos.close();}public static void doCompress(ZipOutputStream zos, File file, String baseDir) throws Exception {if (file.isDirectory()) {// 递归循环,只压缩其中所有⽂件File[] files = file.listFiles();for (int i = 0; i < files.length; i++) {doCompress(zos, files[i], baseDir);}} else {// 进⾏⽂件压缩的操作byte[] buff = new byte[DEFAULT_BUFF_SIZE];InputStream in = new FileInputStream(file);zos.putNextEntry(new ZipEntry(baseDir + File.separator + file.getName()));int len;while ((len = in.read(buff,0 ,DEFAULT_BUFF_SIZE)) != -1) {zos.write(buff, 0, len);}in.close();}}解压/*** Default buff byte size**/private static final int DEFAULT_BUFF_SIZE = 1024;/*** Default basedir value**/private static final boolean DEFAULT_DIR = false;// 程序⼊⼝1public static void decompress(String srcPath) throws Exception {decompress(new File(srcPath));}// 程序⼊⼝2public static void decompress(File srcFile) throws Exception {File baseFile = srcFile.getParentFile();decompress(srcFile, baseFile);}// 程序⼊⼝3public static void decompress(String srcPath, String destPath) throws Exception {decompress(new File(srcPath), new File(destPath));}// 程序基本⼊⼝public static void decompress(File srcFile, File destFile) throws Exception { CheckedInputStream cis = new CheckedInputStream(new FileInputStream(srcFile), new CRC32()); ZipInputStream zis = new ZipInputStream(cis);// 解压操作doDecompress(destFile, zis);zis.close();}private static void doDecompress(File destFile, ZipInputStream zis) throws Exception {ZipEntry zipEntry = null;while ((zipEntry = zis.getNextEntry()) != null) {String dir = destFile.getPath() + File.separator + zipEntry.getName();File dirFile = new File(dir);// 如果⽗⽂件夹不存在,则递归创建其⽗⽂件夹fileProber(dirFile);if (zipEntry.isDirectory()) {// 如果zipEntry是⽬录,则创建⽬录dirFile.mkdirs();} else {// 解压压缩⽂件的其中具体的⼀个zipEntry对象doDecompressFile(dirFile, zis);}zis.closeEntry();}}// ⼀般意义上的⽂件复制操作private static void doDecompressFile(File destFile, ZipInputStream zis) throws Exception { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));int len;byte[] buff = new byte[DEFAULT_BUFF_SIZE];while ((len = zis.read(buff, 0 ,DEFAULT_BUFF_SIZE)) != -1) {bos.write(buff, 0, len);}bos.close();}/*** ⽂件探测** When the parent file not exist.Create it.** @param dirFile* @throws Exception*/public static void fileProber(File dirFile) throws Exception {File parentFile = dirFile.getParentFile();if (!parentFile.exists()) {fileProber(parentFile);parentFile.mkdirs();}}⼯具类/*** Copyright © 2018, LeonKeh* <p>* All Rights Reserved.*/package cn.cherry.se.l_io_zipoutputinputstream;import java.io.*;import java.util.zip.*;/*** ZIP 解压缩⼯具包** @author Leon* @version 2018/6/6 23:07*/public class ZipUtils {/*** Default buff byte size**/private static final int DEFAULT_BUFF_SIZE = 1024;/*** Default basedir value**/private static final boolean DEFAULT_DIR = false;public static void decompress(String srcPath) throws Exception {decompress(new File(srcPath));}public static void decompress(File srcFile) throws Exception {File baseFile = srcFile.getParentFile();decompress(srcFile, baseFile);}public static void decompress(String srcPath, String destPath) throws Exception {decompress(new File(srcPath), new File(destPath));}public static void decompress(File srcFile, File destFile) throws Exception { CheckedInputStream cis = new CheckedInputStream(new FileInputStream(srcFile), new CRC32());ZipInputStream zis = new ZipInputStream(cis);doDecompress(destFile, zis);zis.close();}private static void doDecompress(File destFile, ZipInputStream zis) throws Exception {ZipEntry zipEntry = null;while ((zipEntry = zis.getNextEntry()) != null) {String dir = destFile.getPath() + File.separator + zipEntry.getName();File dirFile = new File(dir);fileProber(dirFile);if (zipEntry.isDirectory()) {dirFile.mkdirs();} else {doDecompressFile(dirFile, zis);}zis.closeEntry();}}private static void doDecompressFile(File destFile, ZipInputStream zis) throws Exception { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));int len;byte[] buff = new byte[DEFAULT_BUFF_SIZE];while ((len = zis.read(buff, 0 ,DEFAULT_BUFF_SIZE)) != -1) {bos.write(buff, 0, len);}bos.close();}/*** ⽂件探测** When the parent file not exist.Create it.** @param dirFile* @throws Exception*/public static void fileProber(File dirFile) throws Exception {File parentFile = dirFile.getParentFile();if (!parentFile.exists()) {fileProber(parentFile);parentFile.mkdirs();}}public static void compress(String srcPath, String destPath,boolean dirFlag) throws Exception { compress(new File(srcPath), new File(destPath), dirFlag);}public static void compress(String srcPath, String destPath) throws Exception {compress(new File(srcPath), new File(destPath), DEFAULT_DIR);}public static void compress(File srcFile, File destFile, boolean dirFlag) throws Exception { compress(srcFile, new ZipOutputStream(new FileOutputStream(destFile)), dirFlag);}public static void compress(File srcFile, ZipOutputStream zos, boolean dirFlag) throws Exception { if (srcFile.isDirectory()) {if (dirFlag) {doCompress(zos, srcFile, srcFile.getName() + File.separator);} else {doCompress(zos, srcFile, "");}} else {doCompress(zos, srcFile, "");}zos.close();}public static void doCompress(ZipOutputStream zos, File file, String baseDir) throws Exception { if (file.isDirectory()) {File[] files = file.listFiles();for (int i = 0; i < files.length; i++) {doCompress(zos, files[i], baseDir);}} else {byte[] buff = new byte[DEFAULT_BUFF_SIZE];InputStream in = new FileInputStream(file);zos.putNextEntry(new ZipEntry(baseDir + File.separator + file.getName()));int len;while ((len = in.read(buff,0 ,DEFAULT_BUFF_SIZE)) != -1) {zos.write(buff, 0, len);}in.close();}}ZipInputStream 默认utf-8编码会存在中⽂乱码,解决⽅式:使⽤gbk编码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java中的IO流操作大全一、流的概念流(stream)的概念源于UNIX中管道(pipe)的概念。

在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。

一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。

流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流。

用户可以从输入流中读取信息,但不能写它。

相反,对输出流,只能往输入流写,而不能读它。

实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读数据,而对输出流,也可不知道它的目的端,只是简单地往流中写数据。

形象的比喻——水流,文件======程序,文件和程序之间连接一个管道,水流就在之间形成了,自然也就出现了方向:可以流进,也可以流出.便于理解,这么定义流:流就是一个管道里面有流水,这个管道连接了文件和程序。

二、流的分类1. java.io包中的类对应两类流,一类流直接从指定的位置(如磁盘文件或内存区域)读或写,这类流称为结点流(node stream),其它的流则称为过滤器(filters)。

过滤器输入流往往是以其它输入流作为它的输入源,经过过滤或处理后再以新的输入流的形式提供给用户,过滤器输出流的原理也类似。

2. Java的常用输入、输出流java.io包中的stream类根据它们操作对象的类型是字符还是字节可分为两大类:字符流和字节流。

∙Java的字节流InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。

∙Java的字符流Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。

结合开始所说的输入/输出流,出现了个一小框架。

字节流字符流输入流InputStream Reader输出流OutputStream Writer【案例1】创建一个新文件[java] view plaincopy1.import java.io.*;2.class hello{3.public static void main(String[] args) {4. File f=new File("D:\\hello.txt");5.try{6. f.createNewFile();7. }catch (Exception e) {8. e.printStackTrace();9. }10. }11.}【运行结果】:程序运行之后,在d盘下会有一个名字为hello.txt的文件。

【案例2】File类的两个常量[java] view plaincopy1.import java.io.*;2.class hello{3.public static void main(String[] args) {4. System.out.println(File.separator);5. System.out.println(File.pathSeparator);6. }7.}【运行结果】:\;此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。

但是在linux下就不是\了。

所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。

呵呵、现在我们使用File类中的常量改写上面的代码:[java] view plaincopy1.import java.io.*;2.class hello{3.public static void main(String[] args) {4. String fileName="D:"+File.separator+"hello.txt";5. File f=new File(fileName);6.try{7. f.createNewFile();8. }catch (Exception e) {9. e.printStackTrace();10. }11. }12.}你看,没有多写多少吧,呵呵。

所以建议使用File类中的常量。

删除一个文件[java] view plaincopy1./**2. * 删除一个文件3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) {7. String fileName="D:"+File.separator+"hello.txt";8. File f=new File(fileName);9.if(f.exists()){10. f.delete();11. }else{12. System.out.println("文件不存在");13. }14.15. }16.}创建一个文件夹[java] view plaincopy1./**2. * 创建一个文件夹3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) {7. String fileName="D:"+File.separator+"hello";8. File f=new File(fileName);9. f.mkdir();10. }11.}【运行结果】:D盘下多了一个hello文件夹列出指定目录的全部文件(包括隐藏文件):[java] view plaincopy1./**2. * 使用list列出指定目录的全部文件3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) {7. String fileName="D:"+File.separator;8. File f=new File(fileName);9. String[] str=f.list();10.for (int i =0; i < str.length; i++) {11. System.out.println(str[i]);12. }13. }14.}【运行结果】:$RECYCLE.BIN360360Downloads360Rec360SoftMoveConfig.MsidaDownloadsDriversBackupeclipsejava web整合开发和项目实战LenovoMSOCacheProgramProgram FilesRECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}System Volume InformationTomcat6varvod_cache_data新建文件夹(你的运行结果应该和这个不一样的,呵呵)但是使用list返回的是String数组,。

而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.他返回的是File的数组列出指定目录的全部文件(包括隐藏文件):[java] view plaincopy1./**2. * 使用listFiles列出指定目录的全部文件3. * listFiles输出的是完整路径4. * */5.import java.io.*;6.class hello{7.public static void main(String[] args) {8. String fileName="D:"+File.separator;9. File f=new File(fileName);10. File[] str=f.listFiles();11.for (int i =0; i < str.length; i++) {12. System.out.println(str[i]);13. }14. }15.}【运行结果】:D:\$RECYCLE.BIND:\360D:\360DownloadsD:\360RecD:\360SoftMoveD:\Config.MsiD:\daD:\DownloadsD:\DriversBackupD:\java web整合开发和项目实战D:\LenovoD:\MSOCacheD:\ProgramD:\Program FilesD:\pythonD:\RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19} D:\System Volume InformationD:\Tomcat6D:\varD:\vod_cache_dataD:\新建文件夹通过比较可以指定,使用listFiles更加方便、判断一个指定的路径是否为目录[java] view plaincopy1./**2. * 使用isDirectory判断一个指定的路径是否为目录3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) {7. String fileName="D:"+File.separator;8. File f=new File(fileName);9.if(f.isDirectory()){10. System.out.println("YES");11. }else{12. System.out.println("NO");13. }14. }15.}【运行结果】:YES搜索指定目录的全部内容[java] view plaincopy1./**2. * 列出指定目录的全部内容3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) {7. String fileName="D:"+File.separator;8. File f=new File(fileName);9. print(f);10. }11.public static void print(File f){12.if(f!=null){13.if(f.isDirectory()){14. File[] fileArray=f.listFiles();15.if(fileArray!=null){16.for (inti = 0; i < fileArray.length; i++) {17.//递归调用18. print(fileArray[i]);19. }20. }21. }22.else{23. System.out.println(f);24. }25. }26. }27.}【运行结果】:D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\framepages\web4welcome_jsp. javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp. classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.j avaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.class D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.java D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.classD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.javaD:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\transit_jsp.class……【使用RandomAccessFile写入文件】[java] view plaincopy1./**2. * 使用RandomAccessFile写入文件3. * */4.import java.io.*;5.class hello{6.public static void main(String[] args) throws IOException {7. String fileName="D:"+File.separator+"hello.txt";8. File f=new File(fileName);9. RandomAccessFile demo=new RandomAccessFile(f,"rw");10. demo.writeBytes("asdsad");11. demo.writeInt(12);12. demo.writeBoolean(true);13. demo.writeChar('A');14. demo.writeFloat(1.21f);15. demo.writeDouble(12.123);16. demo.close();17. }18.}如果你此时打开hello。

相关文档
最新文档