2014-10-31 24 views
0

一個在應用程序編輯的txt文件,我卡在如何將文件保存在文本編輯器我是creating.Here是我的代碼,如果你能幫助我如何保存在Java

import java.awt.*; 

import java.awt.event.*; 

import java.io.BufferedReader; 

import java.io.File; 

import java.io.FileReader; 

import java.io.IOException; 


import javax.swing.*; 

import javax.swing.border.*; 


public class test1 { 

    public static void main (String[] args) 
    { 
     JButton b1 = new JButton("Press to read a file"); 
     JPanel middlePanel = new JPanel(); 
     middlePanel.setBorder (new TitledBorder (new EtchedBorder(), "Text Reading Box")); 

     // create the middle panel components 

     final JTextArea display = new JTextArea (16, 58); 
     display.setEditable (false); 
     JScrollPane scroll = new JScrollPane (display); 
     scroll.setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 

     //Add Text area in to middle panel 
     middlePanel.add (scroll); 

     // My code 
     JFrame frame = new JFrame ("Text Reader 0.4 Beta"); 
     frame.add (middlePanel); 
     frame.add(b1, BorderLayout.NORTH); 
     frame.pack(); 
     frame.setLocationRelativeTo (null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible (true); 
     frame.setLayout(new BorderLayout()); 
     b1.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent e) { 
       JFileChooser chooser = new JFileChooser(); 
       chooser.showOpenDialog(null); 
       File f = chooser.getSelectedFile(); 
       String filename = f.getAbsolutePath(); 

       try { 

        FileReader reader = new FileReader(filename); 
        BufferedReader br = new BufferedReader(reader); 
        display.read(br, null); 
        br.close(); 
        display.requestFocus(); 

       } 

       catch(Exception error) { 
        System.err.println("Could'nt read a file"); 
       } 
      } 

      }); 

    } 
} 
+0

您是否有任何錯誤日誌? – 2014-10-31 12:03:02

+0

沒有每次我寫入一個文件,它不會保存我的編輯 – JofhJyv 2014-10-31 12:05:01

+1

您只是正在讀取文件,但是您沒有將編輯的內容寫回文件 – DeepInJava 2014-10-31 12:06:15

回答

0

我猜你應該有另一個按鈕說'保存'將您編輯的內容保存迴文件。爲此,您必須處理保存按鈕上的操作並將內容寫回文件。

+0

請問該怎麼工作,我已經創建的保存按鈕,但似乎無法寫回文件 – JofhJyv 2014-10-31 12:15:20

+0

@JofhJyv - ofcourse它不會自動保存您的內容。你必須像b1按鈕一樣編寫actionListener,並將邏輯(獲取文本區域的內容並將這些內容寫回文件)放入其中。 – DeepInJava 2014-10-31 12:16:50

+0

我現在已經加入的ActionListener但它是什麼應該執行 – JofhJyv 2014-10-31 12:18:12

0
package com.test; 

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.PrintWriter; 
import java.io.UnsupportedEncodingException; 

import javax.swing.JButton; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.ScrollPaneConstants; 
import javax.swing.border.EtchedBorder; 
import javax.swing.border.TitledBorder; 

public class Random 
{ 
    public static void main(String[] args) 
    { 
     JButton b1 = new JButton("Press to read a file"); 
     JButton b2 = new JButton("Save"); 
     JPanel middlePanel = new JPanel(); 
     final StringBuilder filename = new StringBuilder(""); 
     middlePanel.setBorder(new TitledBorder(new EtchedBorder(), "Text Reading Box")); 

     // create the middle panel components 

     final JTextArea display = new JTextArea(16, 58); 
     display.setEditable(true); 
     JScrollPane scroll = new JScrollPane(display); 
     scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 

     // Add Text area in to middle panel 
     middlePanel.add(scroll); 

     // My code 
     JFrame frame = new JFrame("Text Reader 0.4 Beta"); 
     frame.add(middlePanel); 
     frame.add(b1, BorderLayout.NORTH); 
     frame.add(b2, BorderLayout.SOUTH); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     frame.setLayout(new BorderLayout()); 
     b1.addActionListener(new ActionListener() 
     { 

      public void actionPerformed(ActionEvent e) 
      { 
       JFileChooser chooser = new JFileChooser(); 
       chooser.showOpenDialog(null); 
       File f = chooser.getSelectedFile(); 
       filename.append(f.getAbsolutePath()); 

       try 
       { 

        FileReader reader = new FileReader(filename.toString()); 
        BufferedReader br = new BufferedReader(reader); 
        display.read(br, null); 
        br.close(); 
        display.requestFocus(); 

       } 

       catch (Exception error) 
       { 
        System.err.println("Could'nt read a file"); 
       } 
      } 

     }); 
     b2.addActionListener(new ActionListener() 
     { 

      @Override 
      public void actionPerformed(ActionEvent e) 
      { 
       String textToSet = display.getText(); 
       try 
       { 
        PrintWriter writer = new PrintWriter(filename.toString(), "UTF-8"); 
        writer.write(textToSet); 
        writer.close(); 
       } 
       catch (FileNotFoundException | UnsupportedEncodingException exc) 
       { 
        System.err.println("Could'nt write to the file"); 
       } 

      } 
     }); 
    } 
}