遇到问题,我无法将数组中的所有数字保存为文本文件中的列表。 “类型为BufferedWriter的方法write(int)不适用于参数(列表)” 我试图将其保存为file.txt中的数组,以便以后在文本中使用这些数字 我确实尝试过numx.write(Arrays.asList(x);,但是它说:“类型不匹配:无法从List转换为int”我该怎么做才能将该文本保存为文本,或者至少要在不同情况下使用此数组按下按钮即可上课。
import java.util.ArrayList;
import java.util.Arrays;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.List;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class Start extends JFrame {
/**
*
*/
private static final long serialVersionUID = -6516165981432576014L;
//Local variables
private JTextField m[] = new JTextField[9];
private String n[] = new String[9];
private int x[] = new int [9];
private JButton button;
Start(){
//Top
super("Determinant");
//Closing
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Label
JLabel label = new JLabel(new ImageIcon("detA.png"));
//ArrayList
Box box1 = Box.createHorizontalBox();
Box box2 = Box.createHorizontalBox();
Box box3 = Box.createHorizontalBox();
for (int i = 0; i<9; i++) {
m[i] = new JTextField(1);
//First Line
if (i < 3) {
box1.add(Box.createHorizontalStrut(1));
box1.add(m[i]);
}
//Second Line
else if ((i>=3) && (i<6)){
box2.add(Box.createHorizontalStrut(1));
box2.add(m[i]);
}
else if (i>=6) {
//Third Line
box3.add(Box.createHorizontalStrut(1));
box3.add(m[i]);
}
}
//Make Button
button = new JButton("Result");
Box box4 = Box.createHorizontalBox();
box4.add(Box.createHorizontalGlue());
box4.add(button);
for (int i = 0;i<9;i++) {
try {
n[i] = m[i].getText();
x[i] = Integer.parseInt(n[i]);}
catch (NumberFormatException e) {
}
}
//buttonListener
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
try {
FileWriter saveX = new FileWriter("test.txt", true);
BufferedWriter numx = new BufferedWriter(saveX);
//Here is a problem with Array. How to probably save it as a List
List<int[]> list = Arrays.asList(x);
numx.write(list);
numx.close();
}
catch (Exception e) {
}
}
});
//Make MainBox
Box mainBox = Box.createVerticalBox();
mainBox.setBorder(new EmptyBorder(12,12,12,12));
setContentPane(mainBox);
mainBox.add(Box.createVerticalStrut(10));
getContentPane().add(label);
mainBox.add(box1);
mainBox.add(box2);
mainBox.add(box3);
mainBox.add(box4);
//Size and visible
pack();
setResizable(false);
setVisible(true);
}
}
答案 0 :(得分:0)
要输出到文件,最好使用String
。使用int
可能不是您想要的(请阅读文档)。因此,您可以执行以下操作:
String[] strArray = new String[x.length];
for (int i = 0; i < x.length; i++) {
strArray[i] = "" + x[i];
}
numx.write(String.join(", ", strArray));
这会将数组转换为字符串,然后将结果字符串写入文件。