四.疑是银河落九天 一.日照香炉生紫烟 三.飞流直下三千尺 二.遥看瀑布挂前川。将乱序的古诗排好序后用IO流从一个文件写入另一个文件,利用Java代码实现
时间: 2023-09-06 21:05:27 浏览: 212
### 回答1:
用Java代码实现将乱序的古诗排好序后用IO流从一个文件写入另一个文件,可以这样:try {
// 创建一个文件输入流
FileInputStream fis = new FileInputStream("input.txt");
// 创建一个文件输出流
FileOutputStream fos = new FileOutputStream("output.txt");
// 对文件进行读取操作
byte[] buffer = new byte[1024];
int len = 0;
// 获取读取的内容
StringBuffer sb = new StringBuffer();
while((len = fis.read(buffer)) != -1){
String str = new String(buffer, 0, len);
sb.append(str);
}
// 将乱序的古诗排序
String[] poem = sb.toString().split("\n");
ArrayList<String> poemList = new ArrayList<String>();
for(String s : poem) {
poemList.add(s);
}
Collections.sort(poemList);
StringBuffer result = new StringBuffer();
for(String s : poemList) {
result.append(s).append("\n");
}
// 将排序后的古诗写入文件
fos.write(result.toString().getBytes());
fos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
### 回答2:
根据所给的古诗句,按正确的顺序排列后,得到以下结果:
一.日照香炉生紫烟
二.遥看瀑布挂前川
三.飞流直下三千尺
四.疑是银河落九天
以下是Java代码实现将乱序的古诗排好序并写入另一个文件的过程:
```java
import java.io.*;
public class SortPoem {
public static void main(String[] args) {
// 定义输入文件路径
String inputFilePath = "input.txt";
// 定义输出文件路径
String outputFilePath = "output.txt";
try {
// 创建输入文件的读取流
BufferedReader br = new BufferedReader(new FileReader(inputFilePath));
// 创建输出文件的写入流
BufferedWriter bw = new BufferedWriter(new FileWriter(outputFilePath));
// 存储按序排列的古诗句
String[] sortedPoem = new String[4];
// 读取每行古诗句并存储到数组中
String line;
while ((line = br.readLine()) != null) {
// 根据句首字判断句子属于哪一句,将其放入正确位置
char firstChar = line.charAt(0);
if (firstChar == '一') {
sortedPoem[0] = line;
} else if (firstChar == '二') {
sortedPoem[1] = line;
} else if (firstChar == '三') {
sortedPoem[2] = line;
} else if (firstChar == '四') {
sortedPoem[3] = line;
}
}
// 将排好序的古诗句写入输出文件
for (String poemLine : sortedPoem) {
bw.write(poemLine);
bw.newLine();
}
// 关闭流
br.close();
bw.close();
System.out.println("排列完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码会读取一个名为"input.txt"的输入文件,该文件存储了乱序的古诗句,然后根据句首字判断句子所属的句段,将其排列成正确的顺序后,写入另一个名为"output.txt"的输出文件中。最后打印输出"排列完成!"表示操作成功。
### 回答3:
这是一首李白的《登金陵凤凰台》古诗。按照顺序排列应该是:
一.日照香炉生紫烟
二.遥看瀑布挂前川
三.飞流直下三千尺
四.疑是银河落九天
下面是用Java代码实现的过程:
```java
import java.io.*;
public class SortPoem {
public static void main(String[] args) {
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
try {
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
String[] lines = new String[4];
String line;
while ((line = reader.readLine()) != null) {
int index = Character.getNumericValue(line.charAt(0)) - 1;
lines[index] = line;
}
for (String sortedLine : lines) {
writer.write(sortedLine);
writer.newLine();
}
reader.close();
writer.close();
System.out.println("排序完成并写入文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
首先,我们创建了两个`File`对象,一个是输入文件`input.txt`,另一个是输出文件`output.txt`。
然后,我们使用`BufferedReader`和`BufferedWriter`分别从输入文件中读取内容,并将排好序的内容写入输出文件中。
在读取输入文件的每一行时,我们通过判断行首的数字来确定该行的序号,并将其存储在对应的位置上。
最后,我们使用`BufferedWriter`将排好序的诗句写入输出文件,并关闭读写流。
运行以上代码后,就可以在输出文件`output.txt`中得到排好序的古诗。
阅读全文