欢迎访问宙启技术站
智能推送

Java中的IO函数使用方法和示例

发布时间:2023-05-21 22:46:13

Java中的IO函数用于实现输入和输出任务。 Java中的IO类库提供了许多不同的IO函数来处理不同类型的输入/输出,包括文本,二进制,网络和控制台IO。

在本文中,我们将讨论Java中的IO函数的使用方法和示例。我们将从输入/输出流开始,以及如何读取和写入文件,控制台的输入输出,网络IO,以及扫描器和格式化器的使用等。

1. IO流

Java中IO流是一个基于流的模式,数据通过一个流缓冲区进行传输,即输入流通过一个输入流缓冲区来传输数据,而输出流通过一个输出流缓冲区来传输数据。Java中的IO流分为字节流和字符流两种。

a. 字节流

字节流支持以字节为单位进行读取和写入操作。Java中提供了两个字节流类:InputStream和OutputStream。

InputSteam:InputStream是所有字节输入流的抽象父类。

OutputStream:OutputStream 是所有字节输出流的抽象父类。

下面是一个读取文件内容的示例:

import java.io.*;

public class ReadFile {

    public static void main(String[] args) {

        try {

            FileInputStream fis = new FileInputStream("input.txt");

            byte[] buffer = new byte[1024];

            int len;

            while ((len = fis.read(buffer)) != -1) {

                System.out.write(buffer, 0, len);  // 打印到控制台

            }

            fis.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

b. 字符流

字符流支持以字符为单位进行读取和写入操作,Java中提供了两个字符流类:Reader和Writer。

Reader:Reader 是所有字符输入流的抽象父类。

Writer:Writer 是所有字符输出流的抽象父类。

下面是一个写文件的示例:

import java.io.*;

public class WriteFile {

    public static void main(String[] args) {

        try {

            FileWriter fw = new FileWriter("output.txt");

            fw.write("Hello World!");

            fw.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

2. 文件操作

Java中的文件操作是通过File类实现的,该类提供了许多用于操作文件和目录的方法。

下面是一个文件操作的示例:

import java.io.*;

public class FileOp {

    public static void main(String[] args) {

        File file = new File("input.txt");

        if (file.exists()) {

            System.out.println(file.getName() + " exists.");

            System.out.println("Readable: " + file.canRead());

            System.out.println("Writable: " + file.canWrite());

            System.out.println("Size: " + file.length());

            System.out.println("Path: " + file.getAbsolutePath());

        } else {

            System.out.println("File doesn't exist");

        }

    }

}

3. 控制台输入输出

Java中的控制台输入输出是通过控制台输入输出类(System.in和System.out)实现的。

下面是一个控制台输出的示例:

import java.io.*;

public class ConsoleOutput {

    public static void main(String[] args) {

        System.out.println("Hello World!");

    }

}

下面是一个控制台输入的示例:

import java.util.Scanner;

public class ConsoleInput {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter something:");

        String input = scanner.nextLine();

        System.out.println("You entered: " + input);

    }

}

4. 网络IO

Java中的网络IO主要是通过Socket和ServerSocket类实现的,这两个类提供了用于建立基于TCP协议的客户端和服务器的通信。

下面是一个基于TCP协议的客户端示例:

import java.io.*;

import java.net.*;

public class TCPClient {

    public static void main(String[] args) {

        try {

            Socket socket = new Socket("localhost", 9999);

            OutputStream os = socket.getOutputStream();

            os.write("Hello Server!".getBytes());

            os.flush();

            socket.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

下面是一个基于TCP协议的服务器示例:

import java.io.*;

import java.net.*;

public class TCPServer {

    public static void main(String[] args) {

        try {

            ServerSocket serverSocket = new ServerSocket(9999);

            while (true) {

                Socket socket = serverSocket.accept();

                InputStream is = socket.getInputStream();

                byte[] buffer = new byte[1024];

                int len;

                while ((len = is.read(buffer)) != -1) {

                    System.out.println(new String(buffer, 0, len));

                }

                socket.close();

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

5. 扫描器和格式化器

Java中的扫描器和格式化器是用于处理文本输入和输出的类。

下面是一个扫描器的示例:

import java.util.Scanner;

public class TextScanner {

    public static void main(String[] args) {

        Scanner scanner = new Scanner("Hello 12345");

        while (scanner.hasNext()) {

            if (scanner.hasNextInt()) {

                System.out.println(scanner.nextInt());

            } else {

                System.out.println(scanner.next());

            }

        }

        scanner.close();

    }

}

下面是一个格式化器的示例:

import java.util.Formatter;

public class TextFormatter {

    public static void main(String[] args) {

        Formatter formatter = new Formatter();

        formatter.format("%s %d", "Hello", 12345);

        System.out.println(formatter);

        formatter.close();

    }

}

总结

Java中的IO函数提供了处理不同类型的输入/输出的方法,包括文本、二进制、网络和控制台IO等。本文介绍了Java中IO函数的一些常用用法,希望可以对读者有所帮助。