将数据写入JAVA中的.txt文件?

时间:2011-03-20 03:41:10

标签: java file text

我想知道是否在JAVA中将计算数据写入文本文件。我的JAVA代码是基于GUI的gpa计算器。我只是想添加一个JButton& ActionListener,它将类名,GPA点和计算出的GPA写入.txt文件。

这是我的JFrame驱动程序代码:

import javax.swing.JFrame;

public class Driver00

{

  public static void main(String[] args)

  {
    /*
     * Create a frame (outside box) and write what text
     * will be displayed as the frame title
     */
    JFrame frame = new JFrame("PHILIP MCQUITTY");

    // give frame a size
    frame.setSize(520, 375);

    // set location on the computer screen will frame appear
    frame.setLocation(400, 166);

    // use this so when you press X in corner, frame will close
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // Add your panel to the frame. name must match Panel class name
    frame.setContentPane(new GpaCalc());

    // frame.setResizable(false);

    // always include
    frame.setVisible(true);
  }
}

这是我的JPanel代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GpaCalc extends JPanel {
  private JLabel GPALabel, c1, c2, c3, c4, c5, c6, c7, g1, g2, g3, g4, g5, g6, g7;
  private JTextField Class1, Class2, Class3, Class4, Class5, Class6, Class7, Grade1, Grade2, Grade3, Grade4, Grade5, Grade6, Grade7;
  private double GPA1, GPA2, GPA3, GPA4, GPA5, GPA6, GPA7, GPA, BigDec;

  public GpaCalc() {
    setLayout(new FlowLayout());

    // Class Labels
    GPALabel = new JLabel("0.00000000000000");
    GPALabel.setFont(new Font("Times New Roman", Font.BOLD, 60));
    GPALabel.setForeground(Color.red);

    c1 = new JLabel("Block 1");
    c1.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c1.setForeground(Color.black);

    c2 = new JLabel("Block 2");
    c2.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c2.setForeground(Color.black);

    c3 = new JLabel("Block 3");
    c3.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c3.setForeground(Color.black);

    c4 = new JLabel("Block 4");
    c4.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c4.setForeground(Color.black);

    c5 = new JLabel("Block 5");
    c5.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c5.setForeground(Color.black);

    c6 = new JLabel("Block 6");
    c6.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c6.setForeground(Color.black);

    c7 = new JLabel("Block 7");
    c7.setFont(new Font("Times New Roman", Font.BOLD, 20));
    c7.setForeground(Color.black);

    // Grade Labels
    g1 = new JLabel("GPA Points");
    g1.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g1.setForeground(Color.black);

    g2 = new JLabel("GPA Points");
    g2.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g2.setForeground(Color.black);

    g3 = new JLabel("GPA Points");
    g3.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g3.setForeground(Color.black);

    g4 = new JLabel("GPA Points");
    g4.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g4.setForeground(Color.black);

    g5 = new JLabel("GPA Points");
    g5.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g5.setForeground(Color.black);

    g6 = new JLabel("GPA Points");
    g6.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g6.setForeground(Color.black);

    g7 = new JLabel("GPA Points");
    g7.setFont(new Font("Times New Roman", Font.BOLD, 20));
    g7.setForeground(Color.black);

    // Class Textfields
    Class1 = new JTextField("Enter Class Name", 10);
    Class1.setHorizontalAlignment(SwingConstants.CENTER);

    Class2 = new JTextField("Enter Class Name", 10);
    Class2.setHorizontalAlignment(SwingConstants.CENTER);

    Class3 = new JTextField("Enter Class Name", 10);
    Class3.setHorizontalAlignment(SwingConstants.CENTER);

    Class4 = new JTextField("Enter Class Name", 10);
    Class4.setHorizontalAlignment(SwingConstants.CENTER);

    Class5 = new JTextField("Enter Class Name", 10);
    Class5.setHorizontalAlignment(SwingConstants.CENTER);

    Class6 = new JTextField("Enter Class Name", 10);
    Class6.setHorizontalAlignment(SwingConstants.CENTER);

    Class7 = new JTextField("Enter Class Name", 10);
    Class7.setHorizontalAlignment(SwingConstants.CENTER);

    // Grade Textfields
    Grade1 = new JTextField("0.0", 10);
    Grade1.setHorizontalAlignment(SwingConstants.CENTER);

    Grade2 = new JTextField("0.0", 10);
    Grade2.setHorizontalAlignment(SwingConstants.CENTER);

    Grade3 = new JTextField("0.0", 10);
    Grade3.setHorizontalAlignment(SwingConstants.CENTER);

    Grade4 = new JTextField("0.0", 10);
    Grade4.setHorizontalAlignment(SwingConstants.CENTER);

    Grade5 = new JTextField("0.0", 10);
    Grade5.setHorizontalAlignment(SwingConstants.CENTER);

    Grade6 = new JTextField("0.0", 10);
    Grade6.setHorizontalAlignment(SwingConstants.CENTER);

    Grade7 = new JTextField("0.0", 10);
    Grade7.setHorizontalAlignment(SwingConstants.CENTER);

    // Button(s)
    JButton Calculate = new JButton("Calculate");
    Calculate.addActionListener(new Listener());

    JButton Reset = new JButton("Reset Fields");
    Reset.addActionListener(new Listener2());

    // Add(s)
    add(GPALabel);
    add(c1);
    add(Class1);
    add(Grade1);
    add(g1);
    add(c2);
    add(Class2);
    add(Grade2);
    add(g2);
    add(c3);
    add(Class3);
    add(Grade3);
    add(g3);
    add(c4);
    add(Class4);
    add(Grade4);
    add(g4);
    add(c5);
    add(Class5);
    add(Grade5);
    add(g5);
    add(c6);
    add(Class6);
    add(Grade6);
    add(g6);
    add(c7);
    add(Class7);
    add(Grade7);
    add(g7);
    add(Calculate);
    add(Reset);
  }

  // Action Listener(s)
  private class Listener implements ActionListener {
    public void actionPerformed(ActionEvent e) {

      GPA1 = Double.parseDouble(Grade1.getText());
      GPA2 = Double.parseDouble(Grade2.getText());
      GPA3 = Double.parseDouble(Grade3.getText());
      GPA4 = Double.parseDouble(Grade4.getText());
      GPA5 = Double.parseDouble(Grade5.getText());
      GPA6 = Double.parseDouble(Grade6.getText());
      GPA7 = Double.parseDouble(Grade7.getText());

      GPA = (GPA1 + GPA2 + GPA3 + GPA4 + GPA5 + GPA6 + GPA7) / 7;

      GPALabel.setText("" + GPA);

    }

  }

  private class Listener2 implements ActionListener {
    public void actionPerformed(ActionEvent e) {

      Class1.setText("Enter Class Name");
      Class2.setText("Enter Class Name");
      Class3.setText("Enter Class Name");
      Class4.setText("Enter Class Name");
      Class5.setText("Enter Class Name");
      Class6.setText("Enter Class Name");
      Class7.setText("Enter Class Name");

      Grade1.setText("0.0");
      Grade2.setText("0.0");
      Grade3.setText("0.0");
      Grade4.setText("0.0");
      Grade5.setText("0.0");
      Grade6.setText("0.0");
      Grade7.setText("0.0");

      GPALabel.setText("0.00000000000000");

    }

  }

}

3 个答案:

答案 0 :(得分:12)

检查java I/O api。下面是将数据写入文件的示例。

    BufferedWriter writer = null;
    try {
        writer = new BufferedWriter(new FileWriter("./output.txt"));
        writer.write("your data here");
    } catch (IOException e) {
        System.err.println(e);
    } finally {
        if (writer != null) {
            try {
                writer.close();
            } catch (IOException e) {
                System.err.println(e);
            }
        }
    }

答案 1 :(得分:2)

PrintWriter pw = new PrintWriter(new FileWriter(“c:\\ output.txt”);

pw.println(“值为:”+ x);

pw.close();

答案 2 :(得分:0)

import java.io.*;
class code{
 public static void main(String args[]){
  try{
 File r = new File("C:\\hello.txt");
  FileWriter pw = new FileWriter(r);
PrintWriter pr = new PrintWriter(pw);
pr.println("Hello world");
}catch(IOException e){}
}
}