如何检查textpad中的下一个空行并附加下一个输入

时间:2015-05-04 01:22:21

标签: java swing file-io

您好我的UI有问题。目前,我希望我的UI在每次单击保存时将输入附加到文本板中。单击保存按钮后,它将返回菜单以询问用户是否要输入另一个输入。如果用户单击是,它将返回到输入部分。但是当我第二次尝试输入时,它会覆盖我最初写的内容。如何更改代码以解决此问题?

  private void saveActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        BufferedWriter output = null;
         FileInputStream fs = null;
        try {
            // TODO add your handling code here:
            File myFile = new File("C:/Users/kai/Desktop/sample.txt");
            fs = new FileInputStream("C:/Users/kai/Desktop/sample.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(fs));
             myFile.createNewFile();
            output = new BufferedWriter(new FileWriter(myFile));
            //output.flush();
            for(int i = 0; i<100; ++i){
                String line = br.readLine();
                if(line.equals(null)){
                   String name = text1.getText();
                   String id = text2.getText();
                   output.write(name + " " + id);
                   break;
                }

            }
           // output.newLine();




        } catch (IOException ex) {
            Logger.getLogger(setup.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                output.close();
            } catch (IOException ex) {
                Logger.getLogger(setup.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

       this.dispose();
    }     

3 个答案:

答案 0 :(得分:5)

  

但是当我第二次尝试输入时,它会覆盖我最初写的内容。

在追加模式下打开FileWriter

阅读FileWriter API以找到要使用的相应构造函数。

答案 1 :(得分:1)

即使在读取旧的sample.txt之前,也会创建一个新的sample.txt。一种方法是将文本输入读入String并使用新输出添加新行字符(&#34; \ n&#34;)并与输入连接以创建新的相同文件。

答案 2 :(得分:0)

特别感谢camickr和Kesavacharan。以下是我编辑的版本。如果您发现我的代码可以改进,请随时发表评论。

 private void saveActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        BufferedWriter output = null;
         FileInputStream fs = null;
         FileWriter fout = null;
        try {
            // TODO add your handling code here:
            File myFile = new File("C:/Users/kai/Desktop/sample.txt");
            fs = new FileInputStream("C:/Users/kai/Desktop/sample.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(fs));
            output = new BufferedWriter(new FileWriter(myFile,true));
            PrintWriter fileout = new PrintWriter(output,true);
            for(int i = 0; i<100; ++i){
                String line = br.readLine();
                if(line==null){
                   String name = text1.getText();
                   String id = text2.getText();
                   fileout.println(name + " " + id);
                   break;
                }
            }




        } catch (IOException ex) {
            Logger.getLogger(setup.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                output.close();
            } catch (IOException ex) {
                Logger.getLogger(setup.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

       this.dispose();
    }