如何从JavaBeanObject写入文件(泛型) - java

我想知道如何使用BufferedWriter从对象(泛型)写入文件。

我尝试了下面的代码,但无法正常工作。

我想打印列表中存在的所有值。我是否需要进行任何类型转换或使用迭代器并使用get方法或for循环。

如果我做错了什么,那么将值写入PrintWriter以外的文件的方法是什么?我尝试使用不同的writer,但对我没有任何帮助。
我不明白前进的道路。

从我的程序中获取错误的输出

    public static void file()throws Exception{
        FileWriter fw = new FileWriter("file1.txt");
        BufferedWriter bw = new BufferedWriter(fw);
    for (int i = 0; i < AllList.a.size(); i++) {

            JavaBeans b1 = AllList.a.get(i);
    bw.write(b1.getProductDescription());
    bw.flush();
    bw.close()

第二部分:

    package com.collections;

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    public class AllList {
        public static List<JavaBeans> a = new ArrayList<JavaBeans>();
        public static void getAllList() {


        JavaBeans j = new JavaBeans();
        j.setProductNumber(1);
        j.setProductName("car");
        j.setProductDescription("for driving");
        j.setProductUnits(10);

        JavaBeans j1 = new JavaBeans();
        j1.setProductNumber(2);
        j1.setProductName("soap");
        j1.setProductDescription("for bathing");
        j1.setProductUnits(20);

        JavaBeans j2 = new JavaBeans();
        j2.setProductNumber(3);
        j2.setProductName("Cell");
        j2.setProductDescription("for calling");
        j2.setProductUnits(30);

        a.add(j);
        a.add(j1);
        a.add(j2);

        Iterator<JavaBeans> it = a.iterator();
        while (it.hasNext())
                {
            JavaBeans bean = it.next();
            System.out.print(bean.getProductNumber()+ " \t   "+bean.getProductDescription()+"\t"+bean.getProductName()+"\t"+bean.getProductUnits()+"\n");
        }
        }

        public static void add(JavaBeans bean )
        {
        a.add(bean);

            System.out.println("added succesfully");        
        }

        public static void update(JavaBeans bean )
        {
        for (int i = 0; i < AllList.a.size(); i++) {

            JavaBeans b = AllList.a.get(i);

            if(b.getProductNumber()==bean.getProductNumber()){
                AllList.a.set(i, bean);
            }}

        }   

        public static void delete(JavaBeans bean )
        {
        for (int i = 0; i < AllList.a.size(); i++) {

            JavaBeans b = AllList.a.get(i);

            if(b.getProductNumber()==bean.getProductNumber()){
                AllList.a.remove(i);
                System.out.println("deleted succesfully");
            }}

    }

    public static void file()throws Exception{
        FileWriter fw = new FileWriter("file1.txt");
        BufferedWriter bw = new BufferedWriter(fw);
    for (int i = 0; i < AllList.a.size(); i++) {

            JavaBeans b1 = AllList.a.get(i);
    bw.write(b1.getProductDescription());
    bw.flush();
    bw.close();
    }





                }


    }

日语课:

package com.collections;

public class JavaBeans {

    private int productNumber;
    private String productName;
    private String productDescription;
    private int productUnits;


    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((productDescription == null) ? 0 : productDescription.hashCode());
        result = prime * result + ((productName == null) ? 0 : productName.hashCode());
        result = prime * result + productNumber;
        result = prime * result + productUnits;
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        JavaBeans other = (JavaBeans) obj;
        if (productDescription == null) {
            if (other.productDescription != null)
                return false;
        } else if (!productDescription.equals(other.productDescription))
            return false;
        if (productName == null) {
            if (other.productName != null)
                return false;
        } else if (!productName.equals(other.productName))
            return false;
        if (productNumber != other.productNumber)
            return false;
        if (productUnits != other.productUnits)
            return false;
        return true;
    }

    @Override
    public String toString() {
        return "JavaBeans [productNumber=" + productNumber + ", productName=" + productName + ", productDescription="
                + productDescription + ", productUnits=" + productUnits + "]";
    }

    public int getProductNumber() {
        return productNumber;
    }

    public String getProductName() {
        return productName;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public int getProductUnits() {
        return productUnits;
    }

    public void setProductNumber(int productNumber) {
        this.productNumber = productNumber;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public void setProductUnits(int productUnits) {
        this.productUnits = productUnits;
    }

    }

参考方案

如果您希望创建可读文本,建议您使用PrintWriter进行编写-这可以控制代码中的换行符。

Java Double与BigDecimal - java

我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…