gpt4 book ai didi

java - 反向链表并写入文件: Java

转载 作者:行者123 更新时间:2023-11-30 03:59:48 25 4
gpt4 key购买 nike

我正在编写代码来读取文本文件,将其转换为 LinkedList,然后以相反的顺序写入另一个文本文件。

我面临的问题是,转换文本文件后,我无法反转我的列表。在写作的过程中,我也面临着一些问题。这是我的代码,后面是它的输出...

package Collections;
import java.io.*;
import java.util.*;

public class Store implements Serializable {

private static final long serialVersionUID = 1L;

@SuppressWarnings("rawtypes")
public static void main(String[] args) throws IOException {

BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter the File Name:");
String fname1 = br1.readLine();
FileInputStream fr1 = null;

// Reading the file

try {
fr1 = new FileInputStream(fname1);
} catch (FileNotFoundException fe) {
System.out.println("File Not Found.");
return;
}
BufferedInputStream bin1 = new BufferedInputStream(fr1);
BufferedReader br = new BufferedReader(new InputStreamReader(bin1));
LinkedList<String> words = new LinkedList<String>();
FileOutputStream fout1 = new FileOutputStream("ReverseOrder.txt");
ObjectOutputStream oos = new ObjectOutputStream(fout1);

// Converting the file into Linked List

String theWord;
while (true) {
theWord = br.readLine();
if (theWord != null && theWord.length() > 1)
words.add(theWord);
if (theWord == null)
break;
}
String[] data = new String[words.size()];
for (int i = 0; i < words.size(); i++) {

data[i] = words.get(i);

}
System.out.println("Words:" + words);

// Reversing the LInkedList... Here I don't know why
// Collections.reverse(words) isn't working. I coudn't reverse my list

Collections.reverse(words);

System.out.println("Words:" + words);

// Writing into a file....but here it is not printing in reverse order.
// In fact if I tried to print in Regular order but it's printing with
// extra characters

oos.writeObject(words);
oos.close();
bin1.close();
}
}

输出为:

Enter the File Name:replace.txt
Words:[Suresh is a good boy and He completed his graduation from IIT Guwahati in 2013 But he is a great man ]
Words:[Suresh is a good boy and He completed his graduation from IIT Guwahati in 2013 But he is a great man ]

文件中打印的输出是:

Øí sr java.util.LinkedList)S]J`ˆ"xpw t eSuresh 是一个好 child ,他于 2013 年从 IIT Guwahati 毕业,但他是一个伟大的人 xq ~

最佳答案

这看起来不对:

for (int i = words.size() - 1; i > 0; i--) {
words.add(words.get(i));
Collections.reverse(words);
}

为什么要循环执行呢?如果 Collections.reverse() 反转列表,您需要做的就是

Collections.reverse(words);

你应该完成了吗?

如果我遗漏了什么,请告诉我

关于java - 反向链表并写入文件: Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com