Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用new BufferedWriter(new FileWriter())的一个实例写入文件;用不同的方法_Java_File Io_Io - Fatal编程技术网

Java 如何使用new BufferedWriter(new FileWriter())的一个实例写入文件;用不同的方法

Java 如何使用new BufferedWriter(new FileWriter())的一个实例写入文件;用不同的方法,java,file-io,io,Java,File Io,Io,由于bufferwriter位于try-catch块中,因此在不创建新文件的情况下,我无法在单独的方法中使用同一实例。我不想从文件中读取和修改信息,因为这可能会与此程序的未来开发冲突 所以我的问题是如何在不创建新的bufferwriter实例的情况下写入同一个文件 private void writeStudentInfo(){ BufferedWriter writer = null; try { writer = new BufferedWr

由于
bufferwriter
位于try-catch块中,因此在不创建新文件的情况下,我无法在单独的方法中使用同一实例。我不想从文件中读取和修改信息,因为这可能会与此程序的未来开发冲突

所以我的问题是如何在不创建新的
bufferwriter
实例的情况下写入同一个文件

private void writeStudentInfo(){

    BufferedWriter writer = null;
    try {       
         writer = new BufferedWriter(new FileWriter("C:/" +                                                
             this.getStudentRegistrationNumber() + ".txt", true));

             // Write to file here

    } catch (IOException e) {
        System.err.println(e);
    } finally {
        if (writer != null) {
            try {
                writer.close();
            } catch (IOException e) {
                System.err.println(e);
            }
        }
    }
}
第二种方法:

private void WriteStudentMarks(){

    //I want to use the same instance of BufferWritter in this method for writtng.
    // So I can use the 'writer' object to continue writting into the file.

}

您可以简单地将引用传递给每个方法的编写器,例如

private void WriteStudentMarks(BufferedWriter writer){
然后简单地调用该方法

BufferedWriter writer = null;
//...
WriteStudentMarks(writer); 
//...

您也可能希望通读,这将使人们更容易阅读您的代码…

但是每次我通过WriteStudentMakrs(writer)方法时,我都会创建BufferedWriter()的新实例,因为WriteStudentMarks()方法中包含一个新实例。这将在每次我将该方法调用到另一个方法时创建一个新文件,而我只想创建一个文件,在我将该方法调用到另一个方法时添加到该文件中不,您不会。您可以在
writeStudentInfo
中创建一个实例,并将指向该实例的“指针”传递给每个方法。如果我给你一个冰淇淋,它会创造一个新的冰淇淋实例吗?(我希望如此…)我不明白我将如何使用
WriteStudentMarks(writer)进行写作method,如果该方法中有我想写入
WriteStudentInfo()
方法中的
bufferwriter
对象。那么,假设您也需要将您想要写入的内容传递给该方法……是的,但对于每个不同的方法,我需要一个单独的
WriteStudentInfo()
,采用不同的参数,因为我用不同的方法编写不同的信息。例如
WriteStudentMarks(int-examMaths,ExamEnglish)
然后在另一种方法
writeStudentPersonalInfo(String-firstName,String-SecondName,int-student-registration)
中,这将意味着创建
bufferedwriter
的新实例