首页 文章

BufferedWriter类型中的方法write(int)不适用于参数(List)“

提问于
浏览
0

有问题我不能将Array中的所有数字保存为文本文件中的列表 . “BufferedWriter类型中的方法write(int)不适用于参数(List)”我试图将它保存为file.txt中的一个数组,以便稍后从文本中使用这些数字我尝试了一个numx.write(数组) .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);
            }   
        }

1 回答

  • 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));
    

    这会将数组转换为String,然后将生成的字符串写入文件 .

相关问题