`

java中的IO整理(1)

    博客分类:
  • java
 
阅读更多

写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。

最后欢迎大家提出意见和建议。

【案例1】创建一个新文件

1
2
3
4
5
6
7
8
9
10
11
import java.io.*;
class hello{
    public static void main(String[] args) {
        File f=new File("D:\\hello.txt");
        try{
            f.createNewFile();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

【运行结果】:

 

程序运行之后,在d盘下会有一个名字为hello.txt的文件。

【案例2】File类的两个常量

1
2
3
4
5
6
7
import java.io.*;
class hello{
    public static void main(String[] args) {
        System.out.println(File.separator);
        System.out.println(File.pathSeparator);
    }
}

 

【运行结果】:

\

;

此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。呵呵、

现在我们使用File类中的常量改写上面的代码:

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator+"hello.txt";
        File f=new File(fileName);
        try{
            f.createNewFile();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

你看,没有多写多少吧,呵呵。所以建议使用File类中的常量。

 

 

 

删除一个文件

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * 删除一个文件
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator+"hello.txt";
        File f=new File(fileName);
        if(f.exists()){
            f.delete();
        }else{
            System.out.println("文件不存在");
        }
         
    }
}

 

 

创建一个文件夹

 

 

1
2
3
4
5
6
7
8
9
10
11
/**
 * 创建一个文件夹
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator+"hello";
        File f=new File(fileName);
        f.mkdir();
    }
}

 

 

【运行结果】:

 

D盘下多了一个hello文件夹

 

 

 

列出指定目录的全部文件(包括隐藏文件):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * 使用list列出指定目录的全部文件
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator;
        File f=new File(fileName);
        String[] str=f.list();
        for (int i = 0; i < str.length; i++) {
            System.out.println(str[i]);
        }
    }
}

 

【运行结果】:

 

$RECYCLE.BIN

 

360

 

360Downloads

 

360Rec

 

360SoftMove

 

Config.Msi

 

da

 

Downloads

 

DriversBackup

 

eclipse

 

java web整合开发和项目实战

 

Lenovo

 

MSOCache

 

Program

 

Program Files

 

python

 

RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}

 

System Volume Information

 

Tomcat6

 

var

 

vod_cache_data

 

新建文件夹

 

(你的运行结果应该和这个不一样的,呵呵)

 

但是使用list返回的是String数组,。而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.他返回的是File的数组

 

列出指定目录的全部文件(包括隐藏文件):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * 使用listFiles列出指定目录的全部文件
 * listFiles输出的是完整路径
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator;
        File f=new File(fileName);
        File[] str=f.listFiles();
        for (int i = 0; i < str.length; i++) {
            System.out.println(str[i]);
        }
    }
}

 

 

【运行结果】:

 

D:\$RECYCLE.BIN

 

D:\360

 

D:\360Downloads

 

D:\360Rec

 

D:\360SoftMove

 

D:\Config.Msi

 

D:\da

 

D:\Downloads

 

D:\DriversBackup

 

D:\eclipse

 

D:\java web整合开发和项目实战

 

D:\Lenovo

 

D:\MSOCache

 

D:\Program

 

D:\Program Files

 

D:\python

 

D:\RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}

 

D:\System Volume Information

 

D:\Tomcat6

 

D:\var

 

D:\vod_cache_data

 

D:\新建文件夹

 

通过比较可以指定,使用listFiles更加方便、

 

 

 

判断一个指定的路径是否为目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * 使用isDirectory判断一个指定的路径是否为目录
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator;
        File f=new File(fileName);
        if(f.isDirectory()){
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }
}

 

【运行结果】:YES

 

 

 

搜索指定目录的全部内容

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * 列出指定目录的全部内容
 * */
import java.io.*;
class hello{
    public static void main(String[] args) {
        String fileName="D:"+File.separator;
        File f=new File(fileName);
        print(f);
    }
    public static void print(File f){
        if(f!=null){
            if(f.isDirectory()){
                File[] fileArray=f.listFiles();
                if(fileArray!=null){
                    for (int i = 0; i < fileArray.length; i++) {
                        //递归调用
                        print(fileArray[i]);
                    }
                }
            }
            else{
                System.out.println(f);
            }
        }
    }
}

 

 

【运行结果】:

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\framepages\web4welcome_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.java

 

D:\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.class

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.java

 

D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\transit_jsp.class

 

……

 

 

 

使用RandomAccessFile写入文件

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * 使用RandomAccessFile写入文件
 * */
import java.io.*;
class hello{
    public static void main(String[] args) throws IOException {
        String fileName="D:"+File.separator+"hello.txt";
        File f=new File(fileName);
        RandomAccessFile demo=new RandomAccessFile(f,"rw");
        demo.writeBytes("asdsad");
        demo.writeInt(12);
        demo.writeBoolean(true);
        demo.writeChar('A');
        demo.writeFloat(1.21f);
        demo.writeDouble(12.123);
        demo.close();  
    }
}

 

 

如果你此时打开hellotxt查看的话,会发现那是乱码。

 

转自:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html

分享到:
评论

相关推荐

    java中的IO整理完整版

    在案例1中,通过`new File("D:\\hello.txt")`创建了一个`File`对象,然后调用`createNewFile()`方法创建了一个名为`hello.txt`的文件。如果文件已存在或创建失败,此方法将抛出异常。 案例2展示了`File`类的两个...

    Java中IO系统总结[整理].pdf

    Java中IO系统总结[整理].pdf

    java中的IO流整理

    Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...

    JAVA_IO流整理思维导图.emmx

    JAVA_IO流整理思维导图.

    Java中的IO整理完整版

    在这个完整的Java IO整理版中,我们将深入探讨一些基本的IO概念和用法,主要包括文件操作、路径分隔符、文件删除、文件夹创建以及列出目录下的所有文件。 首先,创建新文件是Java IO中最基础的操作之一。在案例1中...

    Java IO复用_动力节点Java学院整理

    在Java中,IO复用允许一个线程同时处理多个连接的读写事件,从而避免了线程频繁地在睡眠和唤醒状态之间切换,提高了系统性能。 传统的并发编程模型通常与线程绑定,每个连接由一个独立的线程处理。虽然这种方法简单...

    javaIO流整理.txt

    javaIO流整理.txt

    Java IO流分析、IO整理与IO优化.pdf

    ### Java IO流分析、IO整理与IO优化 #### 一、IO流概念解析 Java中的文件操作主要通过**流**的方式进行。所谓流,是指在Java内存中的一组有序数据序列,它允许开发者以一种线性的方式处理数据,无论是从源(如文件...

    Java中IO流简介_动力节点Java学院整理

    Java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。例如,对于一个文件,我们...而到了java 1.1,为了与国际化进行接轨,在java io中添加了许多以字符(Unicode)为单位进行操作的类。

    j0601IO_chicken_Java-IO_prettyjtt_

    1. **流(Stream)**:Java IO中的核心概念,流是数据的序列,可以是字节流或字符流。字节流处理单个字节,字符流处理Unicode字符。流有输入流和输出流之分,分别用于数据的读取和写入。 2. **File类**:File类用于...

    javaIO流思维导图

    自己整理了一下javaIO流的相关知识点 用xmind软件做了一下

    Java IO流.xmind

    Java IO流思维导图,主要摘录整理的是java.io.*包下的所有IO对象,其中对应备注里包含各个IO对象的构造方法

    Java多线程.drawio

    Java多线程.drawio

    Java常用代码整理

    在"Java常用代码整理"这个主题中,我们可以探讨多个Java编程中的关键知识点,包括基础语法、面向对象特性、异常处理、集合框架、IO流、多线程、网络编程以及实用工具类等。 1. **基础语法**:Java的基础语法包括...

    Java NIO:浅析IO模型_动力节点Java学院整理

    Java NIO是Java语言中用于高性能I/O操作的API,理解IO模型是学习Java NIO的基础。本文将从同步和异步的概念开始,然后介绍阻塞和非阻塞的区别,接着介绍阻塞IO和非阻塞IO的区别,最后介绍五种IO模型和两种高性能IO...

    IO流体系继承结构图_动力节点Java学院整理

    Java的IO流体系是Java平台的核心特性之一,用于处理数据的输入和输出。这个体系结构设计得相当丰富和灵活,可以适应多种不同的场景。我们主要从两个方面来理解这个体系:对称性质和处理器模式。 首先,IO流的对称...

    JAVA核心面试知识整理.pdf

    Java核心面试知识整理包括了对JVM内存区域、垃圾回收机制、GC算法、JVM类加载机制、Java集合框架以及Java IO/NIO等多个方面的深入讲解。以下是对这些知识点的详细介绍: JVM内存区域:JVM内存区域包括了程序计数器...

    java常用的工具类整理28个

    下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...

    Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输的能力,使得程序能够读取和写入数据到各种输入/输出设备,如硬盘、内存、网络等。本资源包含的是Java-IO流的基础例题、源码及PPT教学文档,适合初学...

Global site tag (gtag.js) - Google Analytics