有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用方法输出到用户决定的文本文件

简而言之,我正在尝试创建一个方法,将a作为参数 输出文件流名称,然后允许用户写入该文本,并使用while循环附加到该文本。以下是我写的:

public void insertRowsToFile(OutputStream output) throws IOException {

    Scanner keyboard = new Scanner(System.in);
    //here is my mistake that i dont know how to solve (outputstream, boolean is undefined)
    PrintWriter out = new PrintWriter(
                          new OutputStreamWriter(
                              new FileOutputStream(output, true))); 
    boolean answer = true;
    while (answer == true) {
        System.out.println("Enter the row:");
        String entered = keyboard.nextLine();
        out.println(entered);
        System.out.println("Would you like to write more? (yes to continue)");
        String answer2 = keyboard.next();
        if (!answer2.equals("yes"))
            answer = false;
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    你的output变量应该是File,而不是OutputStream

    记住,FileOutputStream的构造函数只有在以下情况下才是合法的:

    • new FileOutputStream(File, boolean)
    • new FileOutputStream(String, boolean)

    以下是正确的方法声明:

    public void insertRowsToFile(File output) throws IOException {
        ...
    }
    

    编辑,未测试:或者更好的方法是保留OutputStream作为参数,但更改out变量的初始化:

    public void insertRowsToFile(OutputStream output) throws IOException { 
        ...
        PrintWriter out = new PrintWriter(new OutputStreamWriter(output)); 
        ...
    }
    

    编辑2:OutputStreamFile之间的区别:

    • OutputStream:是一个抽象类,它接受输出字节并将它们发送到某个接收器
    • File:是一个类,是文件和目录路径名的抽象表示

    资料来源:TutorialsPoint.com