Błąd podczas zapisu do pliku

0

Witam, mam pewien problem, czy mógłbym uzyskać informację, w jaki sposób mogę zapisać do pliku jakiś string, ponieważ gdy próbuje to wykonać wstawiając ten kod do programu :

BufferedWriter writer=new BufferedWriter(FileWriter("file.txt"));
writer.write("string");

package generowanie_testow_2008;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;

public class Frame1 extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();
    JPanel jPanel1 = new JPanel();
    GridBagLayout gridBagLayout1 = new GridBagLayout();
    JButton jButton1 = new JButton();
    TitledBorder titledBorder1 = new TitledBorder("");
    JLabel jLabel1 = new JLabel();
    JTextField jTextField1 = new JTextField();
    JTextField jTextField2 = new JTextField();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel3 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JTextField jTextField3 = new JTextField();
    JTabbedPane jTabbedPane1 = new JTabbedPane();
    JPanel jPanel2 = new JPanel();
    GridLayout gridLayout1 = new GridLayout();
    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }


    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setSize(new Dimension(392, 310));
        setTitle("Generowanie Testów 2008");
        jPanel1.setLayout(gridBagLayout1);
        jButton1.setForeground(UIManager.getColor("Desktop.background"));
        jButton1.setBorder(titledBorder1);
        jButton1.setToolTipText("Wciśnij aby wygenerować testy");
        jButton1.setHorizontalTextPosition(SwingConstants.CENTER);
        jButton1.setIcon(null);
        jButton1.setText("Generuj Testy");
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jPanel1.setBackground(new Color(21, 187, 255));
        jLabel1.setFont(new java.awt.Font("Georgia", Font.PLAIN, 25));
        jLabel1.setForeground(Color.yellow);
        jLabel1.setText("Generator Testów 2008");
        jTextField1.setBackground(Color.orange);
        jTextField1.setFont(new java.awt.Font("Dialog", Font.ITALIC, 11));
        jTextField1.setToolTipText("Tutaj wpisz nazwę pliku z źródłami testów");
        jTextField1.setSelectionColor(Color.gray);
        jTextField1.setText("input.txt");
        jTextField2.setBackground(Color.orange);
        jTextField2.setFont(new java.awt.Font("Dialog", Font.ITALIC, 11));
        jTextField2.setToolTipText(
                "Tutaj wpisz nazwę pliku do wygenerowania testu");
        jTextField2.setCaretColor(Color.white);
        jTextField2.setText("output.txt");
        jLabel2.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
        jLabel2.setForeground(SystemColor.inactiveCaptionText);
        jLabel2.setText("Plik wejściowy:");
        jLabel3.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
        jLabel3.setForeground(SystemColor.inactiveCaptionText);
        jLabel3.setText("Plik wyjściowy:");
        jLabel5.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
        jLabel5.setForeground(SystemColor.inactiveCaptionText);
        jLabel5.setText("Tytuł testu:");
        jTextField3.setBackground(Color.orange);
        jTextField3.setFont(new java.awt.Font("Dialog", Font.ITALIC, 11));
        jTextField3.setToolTipText(
                "Tutaj wpisz tytuł który będzie miał wygenerowany test");
        jTextField3.setText("Testy 2008");
        jPanel2.setBackground(new Color(21, 187, 255));
        jPanel2.setLayout(gridLayout1);
        jPanel1.add(jLabel1, new GridBagConstraints(1, 0, 2, 1, 0.0, 0.0
                , GridBagConstraints.EAST, GridBagConstraints.NONE,
                new Insets(1, 0, 17, 0), 6, 2));
        jPanel1.add(jLabel2, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
                , GridBagConstraints.CENTER, GridBagConstraints.NONE,
                new Insets(22, 0, 0, 0), 0, 0));
        jPanel1.add(jLabel3, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0
                , GridBagConstraints.CENTER, GridBagConstraints.NONE,
                new Insets(20, 0, 0, 0), 0, 0));
        jPanel1.add(jButton1, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0
                , GridBagConstraints.SOUTH, GridBagConstraints.NONE,
                new Insets(27, 0, 0, 73), 36, 0));
        jPanel1.add(jLabel5, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
                , GridBagConstraints.WEST, GridBagConstraints.NONE,
                new Insets(19, 0, 0, 0), 0, 0));
        jPanel1.add(jTextField1, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0
                , GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE,
                new Insets(0, 0, 0, 0), 65, 0));
        jPanel1.add(jTextField2, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0
                , GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE,
                new Insets(0, 3, 0, 1), 56, 0));
        jPanel1.add(jTextField3, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0
                , GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE,
                new Insets(0, 0, 0, 0), 49, 0));
        jTabbedPane1.add(jPanel2, "jPanel2");
        contentPane.add(jTabbedPane1, java.awt.BorderLayout.CENTER);
        jTabbedPane1.add(jPanel1, "jPanel1");
    }

    public void jButton1_actionPerformed(ActionEvent e) {
        //Przycisk generuj
        LinkedList list1 = new LinkedList();
        //Otwieranie pliku
        try {
            FileReader FR3 = new FileReader("data.txt");
            StringBuffer SB3 = new StringBuffer();
            int temp3;

            while ((temp3 = FR3.read()) != -1) {
                char symbol = (char) temp3;
                if (symbol == '|') {
                    list1.add(SB3.toString());
                    SB3 = new StringBuffer();
                } else
                    SB3.append(symbol);
            }
            list1.add(SB3.toString());
            int a = list1.size();
            for(int z = 0;z<a;z++)
            {
            String b = (String) list1.get(z);
            System.out.println(b);
        }

        }  catch (Exception exception) {
            exception.printStackTrace();
        }

    }
}


class Frame1_jButton1_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
    }
}
0

Przepraszam, niechcący wcisnąłem wysłanie posta a nie podgląd, chodzi mi o to że jak wstawię ten kod w linijce przed tą :

FileReader FR3 = new FileReader("data.txt");

Wyskakuje takowy komunikat

java.lang.NullPointerException
at java.io.Writer.<init>(Writer.java:70)
at java.io.BufferedWriter.<init>(BufferedWriter.java:83)
at java.io.BufferedWriter.<init>(BufferedWriter.java:70)
at generowanie_testow_2008.Frame1.jButton1_actionPerformed(Frame1.java:117)
at generowanie_testow_2008.Frame1_jButton1_actionAdapter.actionPerformed(Frame1.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

0

Nie jestem w stanie czytać kodu wygenerowanego przez jakieś IDE, zatem nie znajdę ci błędu. Ja od wielu lat zapisuję korzystając z tej funkcji - u mnie jest w klasie narzędziowej i dlatego jest public static.

    // pisanie do pliku tekstowego - konsolowy komunikat o błędzie
    public static boolean writeToFile(String txt,String file)
    {
        boolean ok=true;
        try
        {
            FileWriter f=new FileWriter(file);
            f.write(txt);
            f.close();
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
            ok=false;
        }
        return ok;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1