`

Java中I/O的File类

    博客分类:
  • Java
阅读更多
1. Java中I/O的File类

1. 在windows中创建一个文件,用createNewFile()方法。
1) Windows使用c:\表示;
2) 其他系统使用c:/表示;
3) 但在java中”\”表示转义字符,所以要使用”\\”来表示路径中的”\”;

2. 分隔符使用File.pathSeparator比较好,不会受系统的影响。但是生成的文件是相对的目录(项目所在默认为根目录)。
File file = new File(File.pathSeparator + "abc.txt");
import java.io.File;
public class FileTest1 {
    public static void main(String[] args) throws Exception {
        File file = new File("c:\\abc.txt");
        System.out.println(file.createNewFile());
    }
}

3. 只要有路径,两个字符串拼接起来可以组成一个路径就可以 new File("c:/abc", "xyz/hello.txt")。
import java.io.File;
public class FileTest2 {
    public static void main(String[] args) throws Exception {
        File file = new File("c:/abc");
        File file2 = new File("c:/abc", "xyz/hello.txt");
        file2.createNewFile();
    }
}

4. 创建一个/多个目录使用file.mkdir()和file.mkdirs()方法。
import java.io.File;
public class FileTest3 {
    public static void main(String[] args) {
        File file = new File("c:/abc/xyz/hello");
        System.out.println(file.mkdirs());
        System.out.println(file.isFile());
    }
}

5. file.list()返回路径首层的所有文件和文件夹;返回String[]数组。
   file.listFiles()返回路径首层的所有文件和文件夹;返回File[]数组。
   getParent()获取文件所在的文件夹名。
import java.io.File;
public class FileTest4 {
    public static void main(String[] args) {
        File file = new File("c:/abc");
        String[] names = file.list();
        for(String name : names){
            System.out.println(name);
        }
        File[] files = file.listFiles();
        for(File f : files){
            System.out.println(f.getName());
            //System.out.println(f.getParent());
        }
    }
}

6. file.delete()方法可以删除文件。file.createNewFile()方法可以创建文件。
import java.io.File;
public class FileTest5 {
    public static void main(String[] args) throws Exception {
        File file = new File("c:\\abc\\xyz\\hello\\abc.txt");
        //file.createNewFile();
        file.delete();
    }
}

7. name.lastIndexOf(".java")包含".java"的文件。
   endsWith(".java")以".java"结尾的文件。
   FileNameFilter类可以重载File类的list()方法。
import java.io.File;
public class FileTest6 {
    public static void main(String[] args) {
        File file = new File("C:\\abc\\xyz\\hello");
        String[] names = file.list();
        for (String name : names) {
            if (name.endsWith(".java")) {
                System.out.println(name);
            }
        }
    }
}

8. 重写file.list(new FilenameFilter())方法(策略模式)。
   构造accept(File dir, String name)方法,dir是文件路径,name是文件名。
import java.io.File;
import java.io.FilenameFilter;
public class FileTest7 {
    public static void main(String[] args) {
        File file = new File("c:\\abc\\xyz\\hello");
        String[] names = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                if (name.endsWith(".txt")) {
                    return true;
                }
                return false;
            }
        });
        for(String name : names){
            System.out.println(name);
        }
    }
}

9. 使用File.Separator路径分隔符创建项目所在的盘符的根目录的文件。
import java.io.File;
public class FileTest8 {
    public static void main(String[] args) throws Exception {
        File file = new File(File.separator);
        File file2 = new File(file, "test.txt");
        System.out.println(file2.createNewFile());
    }
}


2. 文件内容的读写

1. 读取文件内容
import java.io.BufferedReader;
import java.io.FileReader;
public class FileReader1{
    public static void main(String[] args) throws Exception{
        FileReader fr = new FileReader("c:\\FileReader1.java");
        BufferedReader br = new BufferedReader(fr);
        String str;
        while (null != (str = br.readLine())){
            System.out.println(str);
        }
        br.close();
    }
}

2. 输出内容到文件
public class FileWriter1 {
    public static void main(String[] args) throws Exception {
        String str = "hello world welcome nihao hehe";
        char[] buffer = new char[str.length()];
        str.getChars(0, str.length(), buffer, 0);
        FileWriter f = new FileWriter("file2.txt");
        for (int i = 0; i < buffer.length; i++) {
            f.write(buffer[i]);
        }
        f.close();
    }
}

3. CharArrayReader的使用
package code14;
import java.io.CharArrayReader;
public class CharArrayReader1{
    public static void main(String[] args) throws Exception{
        String tmp = "abcdefg";
        char[] ch = new char[tmp.length()];
        tmp.getChars(0, tmp.length(), ch, 0);
        CharArrayReader input = new CharArrayReader(ch);
        int i;
        while(-1 != (i = input.read())){
            System.out.println((char)i);
        }
    }
}
分享到:
评论

相关推荐

    java对I/O流的处理

    Java中的I/O流处理是程序与外部设备交互数据的关键机制,包括从文件、网络、内存等数据源读取数据和向这些目标写入数据。I/O流系统在Java的`java.io`包中被实现,提供了丰富的类和接口来支持各种类型的流操作。 **I...

    Java I/O, 2nd Edition

    2. **标准I/O库**:详细讲解了java.io包中的类和接口,如File类用于文件的创建、读写和删除,InputStream和OutputStream是所有字节流的基类,Reader和Writer则是字符流的基类。此外,还有ObjectInputStream和...

    深入分析 Java I/O 的工作机制(转载)

    Java I/O(输入/输出)系统是Java编程语言中用于处理数据流的重要组成部分,它允许程序与外部资源如文件、网络、硬件设备等进行交互。深入理解Java I/O的工作机制对于开发高效、可靠的系统至关重要。以下是对Java I/...

    怎么使用I/O编程???

    在Java编程中,I/O(Input/Output)处理是与外部世界交互的关键技术,涉及文件读写、网络通信等场景。I/O的核心思想是通过流(Stream)来传输数据,使得程序能从数据源读取数据或将数据写入目标。 **1.1 I/O简介** I...

    Java I/O系统

    文件操作是Java I/O的常见应用场景,`File`类提供了文件和目录的基本操作,如创建、删除、重命名等。而`FileReader`和`FileWriter`则可以用来读写文本文件。对于二进制文件,如图片或音频文件,通常会用到`...

    java基础之I/O流

    Java中的I/O流是程序与外部数据交互的重要机制,它允许数据在程序、文件、网络等之间流动。I/O流分为两大类:字符流(Character Stream)和字节流(Byte Stream),每类又分为输入流(Input Stream)和输出流...

    Java文件I/O操作:读取与写入文件的全面指南

    本文将详细介绍如何在Java中进行文件I/O操作,包括使用传统的I/O类和NIO(New Input/Output)类。 #### 二、Java文件I/O基础 在Java中,文件I/O操作主要涉及以下几个类: - **File**:代表文件系统中的文件或目录。...

    Java I/O层次结构详解

    理解并熟练运用这些Java I/O类和接口,能够有效地处理各种输入输出任务,无论是在文件系统、网络还是内存中。对于开发高效、稳定的系统,掌握Java I/O层次结构至关重要。在实际项目中,可以根据需求选择合适的类和...

    Java I/O 流代码实例大全(01~09)

    Java I/O 流代码实例大全(01~09) File、FileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

    Java I/O详细笔记

    ### Java I/O详细笔记 #### 一、流的分类 Java I/O系统主要涉及四种基本的流分类方式:根据数据流动的方向、数据处理的类型、流处理的源以及是否使用了缓冲机制。 **1. 按数据流动方向** - **输入流(Input ...

    Java I/O流通讯录

    在Java中,I/O流用于处理数据的输入和输出,包括从键盘、文件、网络等源获取数据,以及将数据发送到显示器、打印机、文件或其他目的地。Java I/O流分为字符流和字节流两大类,分别处理文本和二进制数据。在这个...

    Java的I_O处理技术探析.pdf

    Java中提供了许多与输入输出相关的类,如File类、InputStream类、OutputStream类、FileInputStream类、FileOutputStream类、Reader类和Writer类等。这些类都支持“读入”和“写出”操作。 Java的I/O处理技术有很多...

    java i/0习题

    Java I/O(输入/输出)是Java编程语言中不可或缺的一部分,它允许程序与外部资源进行数据交换,如文件、网络连接、系统...在学习过程中,不断实践和总结,理解不同流类的特性和适用场景,是提升Java I/O技能的关键。

    Java I/O文件读写/删除/复制等

    Java I/O 文件操作是Java编程中的重要组成部分,它允许开发者处理输入和输出,涉及文件的创建、读取、写入、删除以及...实际开发中,可以根据具体需求选择合适的方法和类,灵活运用Java I/O API来处理各种文件操作。

    Java I/O 使用和最佳实践

    Java I/O系统是Java编程语言中的一个核心组成部分,它提供了处理输入输出操作的类和接口。这个系统的设计目的是为了使得应用程序能够与外部世界交互,包括读取和写入文件、网络数据、标准输入输出流等。在Java中,I/...

    java_I/O流的教程

    Java I/O流是Java编程语言中的一个重要组成部分,用于在程序和外部资源(如磁盘、网络、内存等)之间传输数据。本教程涵盖了从基础到高级的Java流知识,包括文件读写、缓冲流、对象序列化等多个方面。 1. **文件的...

    Java输入与输出(I、O).

    在Java中,I/O操作被封装在许多类和接口中,形成了丰富的API。以下将详细介绍几个重要的类和概念。 1. **File类**: File类是Java中的核心类,位于java.io包下,用于表示文件和目录。它可以用来创建、删除、重命名...

Global site tag (gtag.js) - Google Analytics