繁体   English   中英

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

[英]The method write(int) in the type BufferedWriter is not applicable for the arguments (List)"

遇到问题,我无法将数组中的所有数字保存为文本文件中的列表。 “尝试将BufferedWriter类型中的write(int)方法不适用于参数(列表)”我尝试将其保存为file.txt中的Array,以便稍后在文本中使用这些数字时尝试使用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);
            }   
        }

为了输出到文件,您最好使用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));

这会将数组转换为字符串,然后将结果字符串写入文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM