Java给春晓这首诗加上行号
时间: 2023-09-01 14:07:50 浏览: 105
好的,以下是Java代码实现:
```java
public class ChunXiao {
public static void main(String[] args) {
String poem = "春眠不觉晓,处处闻啼鸟。\n夜来风雨声,花落知多少。";
String[] lines = poem.split("\n");
for (int i = 0; i < lines.length; i++) {
System.out.println((i+1) + " " + lines[i]);
}
}
}
```
输出结果:
```
1 春眠不觉晓,处处闻啼鸟。
2 夜来风雨声,花落知多少。
```
相关问题
Java从文件中读取春晓这首诗,完成输入流和输出流,输出时加入行号
好的,我可以帮你写一个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文件相同的目录下,然后编译运行该程序,就可以在控制台上看到从文件中读取的春晓诗,并且每行都加上了行号。
JAVA按行读取并添加行号写入
在Java中,你可以使用BufferedReader配合FileReader或者Scanner类来按行读取文件,并使用PrintWriter或者BufferedWriter将每一行加上行号写入新的文件。这里是一个简单的示例:
```java
import java.io.*;
public class LineNumbering {
public static void main(String[] args) {
try {
// 读取源文件
FileReader fileReader = new FileReader("source.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
// 写入目标文件,每行前加行号
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
String line;
int lineNumber = 1;
while ((line = bufferedReader.readLine()) != null) {
writer.write(lineNumber + ": " + line);
writer.newLine();
lineNumber++;
}
// 关闭流
bufferedReader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`readLine()`函数逐行读取源文件,然后在新的一行写入`lineNumber + ": " + line`,其中`: `是列号和文本之间的分隔符。每次读完一行,`lineNumber`就会自增。
阅读全文