有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中读取用户输入并将其写入文件

我想创建一个简单的独立应用程序,从用户那里获取一些输入(一些数字和数学函数f(x,y…)并将它们写入一个文件。然后在这个文件的帮助下,我将运行一个命令

我需要的基本成分:

--用户输入的JTextArea

--按钮Handler/ActionListener并将输入写入(txt)文件

--按钮Handler/ActionLister以执行命令

最好的方法是什么

我有一个当前运行的代码(基本上是一个玩具)——它不写任何东西,只是执行——是:

import java.applet.*;
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Dialog;
import java.io.IOException;
import java.io.InputStream;
import java.io.*;
import java.util.*;
import java.io.BufferedWriter;

public class Runcommand3
{
  public static void main(String[] args) throws FileNotFoundException, IOException
  {
    //JApplet applet = new JApplet();
    //applet.init();

    final JFrame frame = new JFrame("Change Backlight");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();
    panel.setLayout(null);
    frame.add(panel);
    JButton button = new JButton("Click me to Run");
    button.setBounds(55,100,160,30);
    panel.add(button);

    frame.setSize(260,180);
    frame.setVisible(true);
    //This is an Action Listener which reacts to clicking on the button
    button.addActionListener(new ButtonHandler());
  }
}
 class ButtonHandler implements ActionListener{
                public void actionPerformed(ActionEvent event){
                double value = Double.parseDouble(
                JOptionPane.showInputDialog("please enter backlight value"));
                //File theFile = new File("thisfile.txt");
                //theFile.write(value);
                String command = "xbacklight -set " + value;
                try{Runtime run = Runtime.getRuntime();
                Process pr = run.exec(command);}
                catch(IOException t){t.printStackTrace();}
                  }
                }

在上面的示例中,如何将“值”写入文件?那么,如何添加更多输入(更多文本字段)?我可以在同一节课上做还是需要更多? 我的困惑(主要但不仅限于)来自这样一个事实:在ButtonHandler类中,我无法定义任何其他对象(例如,打开和写入文件等)


共 (2) 个答案

  1. # 1 楼答案

    这是我写文件的方式。我将允许您将此代码转换为GUI以供练习。更多关于BufferedWriterFileWriter的信息

    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.util.Scanner;
    
    public class Files {
    
        public static void main(String args[]){
    
            System.out.print("Enter Text: ");
            Scanner scan = new Scanner(System.in);
            String text = scan.nextLine();
            FileWriter fWriter = null;
            BufferedWriter writer = null;
            try {
              fWriter = new FileWriter("text.txt");
              writer = new BufferedWriter(fWriter);
              writer.write(text);
              writer.newLine();
              writer.close();
              System.err.println("Your input of " + text.length() + " characters was saved.");
            } catch (Exception e) {
                System.out.println("Error!");
            }
        }
    
    }
    
  2. # 2 楼答案

    对于您的第二个问题,您可能会考虑在JFrrar上使用JTravefield,以便用户输入行而不是JopTePANE。它只是一个简单的文本框,您可以在每次按下按钮时将框中的内容添加到文件中:

    public static void main(String[] args) {
        JTextField myTextField = new JTextField();
        // Your code, set size and position of textfield
        panel.add(myTextField);
    }
    
    class ButtonHandler implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            String text = myTextField.getText();
            myTextField.setText("");
            new BufferedWriter(new FileWriter("text.txt")).write(text).newLine().close();
            // the rest of your code
        }
    }