JavaIO流

Java中的IO流是用来处理输入输出操作的机制,用于读取和写入数据。

Java中的IO流按照操作对象的不同可以分为文件流、字节数组流、字符数组流、管道流等。

字节流

字节流用于处理二进制数据,它以字节为单位进行读取和写入。字节流主要由InputStream、OutputStream、FileInputStream、FileOutputStream等类组成。

字符流 

字符流用于处理文本数据,它以字符为单位进行读取和写入。字符流主要由Reader、Writer、FileReader、FileWriter等类组成。

Java中的IO流按照操作对象的不同可以分为文件流、字节数组流、字符数组流、管道流等。

文件流 

文件流用于读取和写入文件。可以通过FileInputStream和FileOutputStream来创建文件流对象。

字节数组流 

字节数组流用于将数据读取到字节数组中或者将字节数组写入到流中。可以通过ByteArrayInputStream和ByteArrayOutputStream来创建字节数组流对象。

字符数组流 

字符数组流用于将数据读取到字符数组中或者将字符数组写入到流中。可以通过CharArrayReader和CharArrayWriter来创建字符数组流对象。

管道流 

管道流用于实现多个线程之间的通信。可以通过PipedInputStream和PipedOutputStream来创建管道流对象。

IO流是Java中非常重要的概念,用于处理输入输出操作。它提供了各种不同的类和方法来满足不同的需求。可以根据具体的需求选择合适的IO流进行操作。

File

File类是Java中最早的用于处理文件和目录的类,它提供了一系列的方法来操作文件和目录。我们可以使用File类来创建、删除、重命名、复制文件和目录,获取文件和目录的属性等。

创建文件:

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

public class FileExample {
    public static void main(String[] args) {
        File file = new File("path/to/file.txt");

        try {
            if (file.createNewFile()) {
                System.out.println("File created successfully.");
            } else {
                System.out.println("File already exists.");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

删除文件:

import java.io.File;

public class FileExample {
    public static void main(String[] args) {
        File file = new File("path/to/file.txt");

        if (file.delete()) {
            System.out.println("File deleted successfully.");
        } else {
            System.out.println("Failed to delete the file.");
        }
    }
}

重命名文件:

import java.io.File;

public class FileExample {
    public static void main(String[] args) {
        File file = new File("path/to/file.txt");
        File newFile = new File("path/to/new-file.txt");

        if (file.renameTo(newFile)) {
            System.out.println("File renamed successfully.");
        } else {
            System.out.println("Failed to rename the file.");
        }
    }
}

复制文件:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class FileExample {
    public static void main(String[] args) {
        File sourceFile = new File("path/to/source-file.txt");
        File destinationFile = new File("path/to/destination-file.txt");

        try {
            Files.copy(sourceFile.toPath(), destinationFile.toPath());
            System.out.println("File copied successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

获取文件属性:

import java.io.File;

public class FileExample {
    public static void main(String[] args) {
        File file = new File("path/to/file.txt");

        if (file.exists()) {
            System.out.println("File name: " + file.getName());
            System.out.println("File path: " + file.getAbsolutePath());
            System.out.println("File size: " + file.length() + " bytes");
            System.out.println("File last modified: " + file.lastModified());
        } else {
            System.out.println("File does not exist.");
        }
    }
}

获取目录属性和列出目录下的文件:

import java.io.File;

public class FileExample {
    public static void main(String[] args) {
        File directory = new File("path/to/directory");

        if (directory.isDirectory()) {
            System.out.println("Directory name: " + directory.getName());
            System.out.println("Directory path: " + directory.getAbsolutePath());

            File[] files = directory.listFiles();
            System.out.println("Files in the directory:");
            for (File file : files) {
                System.out.println(file.getName());
            }
        } else {
            System.out.println("Not a directory.");
        }
    }
}

Path

 Path类是Java 7中引入的一个新的类,它提供了更强大和灵活的文件和目录操作功能。Path类是基于文件系统的路径来操作的,可以处理相对路径和绝对路径,还可以处理符号链接和路径中的特殊字符。Path类提供了一系列的方法来创建、删除、拷贝、移动、重命名文件和目录,还可以获取文件和目录的属性,以及遍历目录等操作。

Path类的优点在于它更加灵活和易用,可以处理不同操作系统下的路径。而File类则是一个相对简单的类,只能处理本地文件系统下的路径。

下面是一个示例

import java.io.IOException;
import java.nio.file.*;

public class PathExample {
    public static void main(String[] args) {
        // 创建路径对象
        Path path = Paths.get("C:/data/file.txt");

        // 判断路径是否存在
        boolean exists = Files.exists(path);
        System.out.println("文件是否存在: " + exists);

        // 创建目录
        try {
            Path dir = Paths.get("C:/data/newdir");
            Files.createDirectory(dir);
            System.out.println("目录已创建");
        } catch (IOException e) {
            System.out.println("创建目录失败: " + e.getMessage());
        }

        // 创建文件
        try {
            Path file = Paths.get("C:/data/newfile.txt");
            Files.createFile(file);
            System.out.println("文件已创建");
        } catch (IOException e) {
            System.out.println("创建文件失败: " + e.getMessage());
        }

        // 删除文件
        try {
            Path file = Paths.get("C:/data/delete.txt");
            Files.delete(file);
            System.out.println("文件已删除");
        } catch (IOException e) {
            System.out.println("删除文件失败: " + e.getMessage());
        }

        // 复制文件
        try {
            Path source = Paths.get("C:/data/source.txt");
            Path target = Paths.get("C:/data/target.txt");
            Files.copy(source, target);
            System.out.println("文件已复制");
        } catch (IOException e) {
            System.out.println

 

在Java中,流是用于从源中读取数据或将数据写入目标的一种抽象概念。Java中的流可以分为输入流和输出流两种类型。

输入流(InputStream)用于从源中读取数据,可以读取字节数据或字符数据。常见的输入流包括FileInputStream、ByteArrayInputStream和DataInputStream等。

输出流(OutputStream)用于将数据写入目标,也可以写入字节数据或字符数据。常见的输出流包括FileOutputStream、ByteArrayOutputStream和DataOutputStream等。

流的操作一般涉及到打开、读写和关闭三个步骤。具体操作流的代码如下所示:

InputStream inputStream = new FileInputStream("input.txt");
OutputStream outputStream = new FileOutputStream("output.txt");

int data;
while ((data = inputStream.read()) != -1) {
    // 处理读取到的数据
    outputStream.write(data);
}

inputStream.close();
outputStream.close();

上述代码打开了一个输入流和一个输出流,然后通过读取输入流中的数据并写入输出流中实现了数据的复制。最后,关闭了输入流和输出流,释放资源。

流是Java中用于处理输入输出的重要机制,通过流可以方便地读取和写入各种数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值