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

Java中的输入输出函数介绍

发布时间:2023-06-01 19:16:17

Java 是一种常用的编程语言,其 I/O(输入/输出)函数是 Java 编程中不可缺少的部分。Java 的输入/输出函数通常用于从文件中读取数据、向文件中写入数据、从标准输入读取数据、向标准输出输出数据等。本文将对 Java 中的输入/输出函数进行介绍,包括文件输入/输出和控制台输入/输出。

一、文件输入/输出

1. 文件读写概述

Java 中的文件读写操作通常使用 java.io 包中的类来实现,常用的类有 FileReader、FileWriter、BufferedReader、BufferedWriter、Scanner、PrintWriter 等。这些类提供了非常丰富的方法,可以方便地进行文件读写操作。

2. 文件读写的基本方法

(1)FileInputStream 和 FileOutputStream

FileInputStream 和 FileOutputStream 类用于操作文件字节流,使用这两个类可以读取和写入任何类型的文件。

示例:

import java.io.*;

public class FileStreamTest {
    public static void main(String args[]) {
        try {
            FileInputStream in = new FileInputStream("input.txt");
            FileOutputStream out = new FileOutputStream("output.txt");
            int c;
            while ((c = in.read()) != -1) {
                out.write((char) c);
            }
            in.close();
            out.close();
        } catch (IOException e) {
            System.out.println("Exception occurred: " + e);
        }
    }
}

(2)FileReader 和 FileWriter

FileReader 和 FileWriter 类用于读写字符流。

示例:

import java.io.*;

public class FileReaderTest {
    public static void main(String args[]) {
        try {
            FileReader in = new FileReader("input.txt");
            FileWriter out = new FileWriter("output.txt");
            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }
            in.close();
            out.close();
        } catch (IOException e) {
            System.out.println("Exception occurred: " + e);
        }
    }
}

(3)BufferedInputStream 和 BufferedOutputStream

BufferedInputStream 和 BufferedOutputStream 类分别是对 FileInputStream 和 FileOutputStream 类的包装,用于提高文件读写性能。

示例:

import java.io.*;

public class BufferedOutputStreamTest {
    public static void main(String args[]) {
        try {
            FileInputStream in = new FileInputStream("input.txt");
            BufferedInputStream bin = new BufferedInputStream(in);
            FileOutputStream out = new FileOutputStream("output.txt");
            BufferedOutputStream bout = new BufferedOutputStream(out);
            int c;
            while ((c = bin.read()) != -1) {
                bout.write(c);
            }
            in.close();
            bin.close();
            out.close();
            bout.close();
        } catch (IOException e) {
            System.out.println("Exception occurred: " + e);
        }
    }
}

(4)BufferedReader 和 BufferedWriter

BufferedReader 和 BufferedWriter 类用于读写字符流。

示例:

import java.io.*;

public class BufferedReaderTest {
    public static void main(String args[]) {
        try {
            FileReader in = new FileReader("input.txt");
            BufferedReader bin = new BufferedReader(in);
            FileWriter out = new FileWriter("output.txt");
            BufferedWriter bout = new BufferedWriter(out);
            String line;
            while ((line = bin.readLine()) != null) {
                bout.write(line);
                bout.newLine();
            }
            in.close();
            bin.close();
            out.close();
            bout.close();
        } catch (IOException e) {
            System.out.println("Exception occurred: " + e);
        }
    }
}

(5)Scanner

Scanner 类可用于读取不同类型的文件,如文本文件、XML 文件等。

示例:

import java.io.*;
import java.util.Scanner;

public class ScannerTest {
    public static void main(String args[]) {
        try {
            Scanner scanner = new Scanner(new File("input.txt"));
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("File not found: " + e);
        }
    }
}

(6)PrintWriter

PrintWriter 类可用于以文本形式写入数据,也可以将数据写入文件。

示例:

import java.io.*;
import java.util.Scanner;

public class PrintWriterTest {
    public static void main(String args[]) {
        try {
            PrintWriter out = new PrintWriter(new FileWriter("output.txt"));
            out.println("Hello, World!");
            out.close();
        } catch (IOException e) {
            System.out.println("Exception occurred: " + e);
        }
    }
}

二、控制台输入/输出

在 Java 中,可以通过 System.in 和 System.out 对象分别实现标准输入和标准输出。System.in 是 InputStream 类型的对象,System.out 是 PrintStream 类型的对象。

1. 控制台输出

Java 中的 System.out.println() 函数用于向控制台输出数据,该函数的参数可以是字符串、整数、浮点数、字符等各种类型。

示例:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

输出结果:

Hello, World!

2. 控制台输入

Java 中的 Scanner 类提供了从标准输入读取数据的功能。Scanner 类的构造函数需要一个 InputStream 对象作为参数,因此可以使用 System.in 对象来创建 Scanner 对象。

示例:

import java.util.*;

public class ScannerTest {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter a number:");
        int num = sc.nextInt();
        System.out.println("The number you entered is: " + num);
    }
}

输出结果:

Please enter a number:
5
The number you entered is: 5

以上就是 Java 中输入/输出函数的介绍和示例。在实际编程中,可以根据需要选择适当的输入/输出函数来实现各种读写任务。另外还要注意关闭文件和流,以避免文件和流资源的浪费和影响程序性能。