下面的程序由我完成。如果提供数据作为输入,它将存储在控制台的设置显示中并将数据写入文本文件。请在文本文件中提供一些解决方案。它正在打印垃圾值。我希望输出在控制台中显示的样子。

public class Test {
    public static void main(String []args) throws Exception {
        Set storeVals = new HashSet();
        Scanner sc = new Scanner(System.in);
        String input = "";

        do{
            System.out.println("Enter Some Data: ");
            input = sc.nextLine();
            storeVals.add(input);
        } while(!input.equals("exit"));
        //sc.close();

        Iterator storeValsItr = storeVals.iterator();
        while (storeValsItr.hasNext()) {
            System.out.println(storeValsItr.next());
        }

        ObjectOutputStream wr= new ObjectOutputStream(new FileOutputStream("D:/new.txt"));
        while (storeValsItr.hasNext()) {
            Object o=storeValsItr.next();
            wr.writeObject(o);
            wr.flush();
            wr.close();
        }
    }
}

最佳答案

从JavaDoc开始:


  FileOutputStream用于写入原始字节流,例如图像数据。要编写字符流,请考虑使用FileWriter。


FileWriterBufferedWriter一起使用。

10-06 12:44