在单个try-with-resources语句中仔细指定多个资源
时间: 2024-05-04 07:19:36 浏览: 9
可以在try-with-resources语句中指定多个资源,每个资源之间用分号分隔。例如:
```java
try (FileInputStream input = new FileInputStream("input.txt");
FileOutputStream output = new FileOutputStream("output.txt")) {
// 读取并写入文件
} catch (IOException e) {
// 异常处理
}
```
在上面的示例中,我们使用了两个资源:一个是用于读取的`FileInputStream`,另一个是用于写入的`FileOutputStream`。在try-with-resources语句块执行完毕后,这两个资源将自动关闭。
相关问题
写一个Java程序,写多个单词,用BufferedReader读取并再用TreeSet将每个单词排序再用BuffeeredWriter写并放入文档
以下是一个简单的Java程序,用于从控制台读取多个单词,将它们排序并写入文档中。
```java
import java.io.*;
import java.util.*;
public class SortWords {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
TreeSet<String> words = new TreeSet<String>();
try {
System.out.println("请输入单词,以空格分隔:");
String line = reader.readLine();
String[] inputWords = line.split(" ");
for (String word : inputWords) {
words.add(word);
}
BufferedWriter writer = new BufferedWriter(new FileWriter("sorted_words.txt"));
for (String word : words) {
writer.write(word);
writer.newLine();
}
writer.close();
System.out.println("单词已排序并写入文档。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该程序首先创建一个`BufferedReader`对象,用于从控制台读取输入。然后,它创建一个`TreeSet`对象,用于存储输入的单词并自动排序。接下来,程序从控制台读取一行输入,将其拆分为单个单词,并将它们添加到`TreeSet`中。最后,程序创建一个`BufferedWriter`对象,将排序后的单词写入名为`sorted_words.txt`的文档中。
注意,程序中使用的`BufferedReader`和`BufferedWriter`都是需要关闭的资源,因此在代码中使用了`try-with-resources`语句,以确保它们在使用后被正确关闭。
BufferedReader中单个字符
BufferedReader类提供了read()方法,可以从输入流中读取一个单个字符。
示例代码如下:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个BufferedReader对象来读取文件"file.txt"。然后,使用`read()`方法逐个字符地读取文件内容,直到读取到文件末尾(返回-1)为止。读取的字符通过`(char)`进行类型转换,并通过`System.out.print()`方法打印出来。
请注意,在使用BufferedReader时,要确保在不再需要时及时关闭它,以释放资源。可以使用try-with-resources语句来处理资源的关闭,如上面的示例代码所示。