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

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

我需要的基本成分:

– 用于用户输入的JTextArea。

– ButtonHandler / ActionListener并将输入写入(txt)文件

– ButtonHandler / 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();} } } 

在上面的示例中,如何将’value’写入文件? 那么,我该如何添加更多输入(更多文本字段)? 我可以在同一个class级或我需要更多吗? 我的困惑(主要但不仅仅是)来自于ButtonHandler类内部我无法定义任何其他对象(即打开和写入文件等)这一事实。

这是我写入文件的方式。 我将让您将此代码转换为GUI以进行练习。 有关BufferedWriter和FileWriter的更多信息,请参阅

 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!"); } } } 

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

 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 } }