Buffered writer 不是在写文本?
Buffered writer is not writing text?
我正在制作一个简单的程序,它需要一个用户名和密码并将其保存到一个文本文件中。但是,在我检查硬盘驱动器之前,该程序工作正常。文本文件存在但没有文本。
public class Main {
public static void main(String args[]){
events jack = new events();
events gui = new events();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setTitle("WCPSS");
gui.setSize(1100,400);
gui.setVisible(true);
gui.setLocationRelativeTo(null);
BufferedWriter bw = null;
try {
//Specify the file name and path here
File file = new File("E:/myfile.txt");
/* This logic will make sure that the file
* gets created if it is not present at the
* specified location*/
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.write(jack.username);
System.out.println("File written Successfully");
} catch (IOException ioe) {
ioe.printStackTrace();
}
finally
{
try{
if(bw!=null)
bw.close();
}catch(Exception ex){
System.out.println("Error in closing the BufferedWriter"+ex);
}
}
}
}
public class events extends JFrame {
public String username = ("");
public String password = ("");
private JLabel label;
private JButton button;
private JTextField userin = new JTextField(10);
private JTextField userpass = new JTextField(10);
public events() {
setLayout(new FlowLayout());
button = new JButton("Submit");
button.setBounds(5, 435, 50, 123);
add(button);
label = new JLabel(
"Please enter your username and password : ");
add(label);
add(userin);
add(userpass);
button.addActionListener((e) -> {
sumbitAction();
});
}
private void sumbitAction() {
username = userin.getText();
password = userpass.getText();
System.out.println(username);
System.out.println(password);
}
}
我知道这可能写得不好,但我是初学者,希望得到一些帮助。谢谢
写入文件的部分应该可以。问题是它在 加载 JFrame
之后立即运行 。
您应该将代码移动到 ActionListener
处理程序,当您按下 JButton
:
时执行
private void sumbitAction() {
username = userin.getText();
password = userpass.getText();
System.out.println(username);
System.out.println(password);
// do the writing here
}
您还在内存中创建了 JFrame
的两个实例,并且只加载了一个。为什么?只创建一个。
我正在制作一个简单的程序,它需要一个用户名和密码并将其保存到一个文本文件中。但是,在我检查硬盘驱动器之前,该程序工作正常。文本文件存在但没有文本。
public class Main {
public static void main(String args[]){
events jack = new events();
events gui = new events();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setTitle("WCPSS");
gui.setSize(1100,400);
gui.setVisible(true);
gui.setLocationRelativeTo(null);
BufferedWriter bw = null;
try {
//Specify the file name and path here
File file = new File("E:/myfile.txt");
/* This logic will make sure that the file
* gets created if it is not present at the
* specified location*/
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.write(jack.username);
System.out.println("File written Successfully");
} catch (IOException ioe) {
ioe.printStackTrace();
}
finally
{
try{
if(bw!=null)
bw.close();
}catch(Exception ex){
System.out.println("Error in closing the BufferedWriter"+ex);
}
}
}
}
public class events extends JFrame {
public String username = ("");
public String password = ("");
private JLabel label;
private JButton button;
private JTextField userin = new JTextField(10);
private JTextField userpass = new JTextField(10);
public events() {
setLayout(new FlowLayout());
button = new JButton("Submit");
button.setBounds(5, 435, 50, 123);
add(button);
label = new JLabel(
"Please enter your username and password : ");
add(label);
add(userin);
add(userpass);
button.addActionListener((e) -> {
sumbitAction();
});
}
private void sumbitAction() {
username = userin.getText();
password = userpass.getText();
System.out.println(username);
System.out.println(password);
}
}
我知道这可能写得不好,但我是初学者,希望得到一些帮助。谢谢
写入文件的部分应该可以。问题是它在 加载 JFrame
之后立即运行 。
您应该将代码移动到 ActionListener
处理程序,当您按下 JButton
:
private void sumbitAction() {
username = userin.getText();
password = userpass.getText();
System.out.println(username);
System.out.println(password);
// do the writing here
}
您还在内存中创建了 JFrame
的两个实例,并且只加载了一个。为什么?只创建一个。