在Java程序中,输入输出主要通过 流(Streams)来实现。Java的输入输出流主要分为字节流和字符流两大类,它们分别用于处理二进制数据和文本数据。
字节流
基类:InputStream和OutputStream
常用实现类:
FileInputStream:用于从文件中读取字节数据
FileOutputStream:用于向文件中写入字节数据
BufferedInputStream:为输入流提供缓冲功能
BufferedOutputStream:为输出流提供缓冲功能
字符流
基类:Reader和Writer
常用实现类:
FileReader:用于从文件中读取字符数据
FileOutputStream:用于向文件中写入字符数据
BufferedReader:为输入流提供缓冲功能
BufferedWriter:为输出流提供缓冲功能
输入方法
System.in:标准输入流,通常使用Scanner类来读取用户输入。
Scanner类:提供了一系列方法来读取不同类型的输入,如nextInt(), nextDouble(), nextLine()等。
输出方法
System.out:标准输出流,常用的方法有:
System.out.println():输出内容后自动换行
System.out.print():输出内容后不会自动换行
System.out.printf():可以进行格式化输出
示例代码
读文件内容
```java
String inputFile = "input.txt";
try (FileInputStream fis = new FileInputStream(inputFile)) {
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char) byteRead);
}
} catch (IOException e) {
e.printStackTrace();
}
```
获取用户输入
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.println("你输入的整数是: " + num);
scanner.close();
}
}
```
建议
在处理文件输入输出时,建议使用缓冲流(如BufferedInputStream和BufferedOutputStream)以提高效率。
在获取用户输入时,推荐使用Scanner类,因为它提供了方便的方法来读取不同类型的数据,并且易于使用。
在使用System.out进行输出时,可以根据需要选择使用println()或print()方法,以便在输出后是否需要换行。