Java从文件中读取春晓这首诗,完成输入流和输出流,输出时加入行号
时间: 2023-12-25 10:03:57 浏览: 151
好的,我可以帮你写一个Java程序,从文件中读取春晓这首诗,并通过输出流在控制台上输出,每行输出时加入行号。
以下是完整的Java代码实现:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
// 创建输入流,读取文件
FileInputStream fis = new FileInputStream("chunxiao.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
// 创建输出流,输出到控制台
OutputStreamWriter osw = new OutputStreamWriter(System.out);
BufferedWriter bw = new BufferedWriter(osw);
// 定义行号
int lineNum = 1;
// 逐行读取文件,并输出到控制台
String line = null;
while ((line = br.readLine()) != null) {
// 输出行号和内容
bw.write(lineNum + ": " + line);
bw.newLine();
lineNum++;
}
// 关闭流
br.close();
isr.close();
fis.close();
bw.close();
osw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们使用了Java的输入流和输出流来读取文件和输出到控制台。具体来说,我们使用了以下几个类:
- FileInputStream:用于从文件中读取数据。
- InputStreamReader:用于将字节流转换为字符流,可以指定字符集编码。
- BufferedReader:用于逐行读取字符流。
- OutputStreamWriter:用于将字符流转换为字节流,可以指定字符集编码。
- BufferedWriter:用于逐行写入字符流。
我们首先通过创建FileInputStream、InputStreamReader和BufferedReader对象,来读取文件中的数据。在读取文件时,我们指定了文件的编码格式为UTF-8,这是为了确保中文字符能够正确地被读取。
接着,我们通过创建OutputStreamWriter和BufferedWriter对象,来输出内容到控制台。在输出内容时,我们使用了bw.write()方法和bw.newLine()方法来输出内容和换行符。同时,我们还定义了一个变量lineNum来表示行号,每输出一行内容,我们就将行号加1。
最后,我们在程序结尾处关闭了所有的流对象,以确保资源得到正确释放。
你可以将上面的代码保存为一个Java文件,然后将“chunxiao.txt”文件放在与Java文件相同的目录下,然后编译运行该程序,就可以在控制台上看到从文件中读取的春晓诗,并且每行都加上了行号。
阅读全文