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