无法获取 if 语句的结果以写入新的 .txt 文件

Cannot get product of if statement to write to a new .txt file

我正在为我的 Java class 开发一个销售工具,除了将我的结果写入新的 .txt 文件外,我能够使一切正常工作。为了提供一些背景知识,我有一个 GUI 正在将数据写入名为 out1.txt 的文本文件。我正在从此文件中读回数据,并在 JtextArea 中显示 computesales >= 8,000 的任何内容,如下面的代码所示。

 private void evaluateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    saleOutput.setText("");        
    SaleReader reader = new SaleReader();

    try
    {
        List<Sales> sale = reader.readSale("out1.txt");   
        for (Sales s : sale)
        {
            if(s.computeSales()>= 8000)
            {
            saleOutput.append(s.toString());
            saleOutput.append("\n");

            }
        }
    }catch (IOException ex) {
        JOptionPane.showMessageDialog(this, "Unable to open file");
        Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
    }


}                                              

我已经尝试了以下写入我的 out1.txt 文件的变体,但它似乎根本不起作用。它甚至不会创建文件。我的同事似乎认为文件编写器没有被刷新可能是个问题?

 public void writeSales(Sales s) throws IOException
{
    File testWriter = new File ("out1.txt");
    BufferedWriter out = new BufferedWriter(new FileWriter(testWriter, true));

    out.write("" + s.getSalesID());
    out.write(", ");
    out.write(s.getFirstName());
    out.write(", ");
    out.write(s.getLastName());
    out.write(", ");
    out.write("" + s.getOfficeSupplies());
    out.write(", ");
    out.write("" + s.getBooks());
    out.write(", ");
    out.write("" + s.getPaper());
    out.write(", ");
    out.write("" + s.getDistrictValue());        
    out.write(", ");
    out.write("" + s.getPreferredContact());   
    out.write(", ");
    out.write("" + s.computeSales());
    out.newLine();       
    out.close();
}

这是我在单独的 class 中写入的内容,用于写入新的 stars.txt 文件,但无法正常工作。有什么建议吗?

public void writeStars(Sales f) throws IOException
{
    File testStars = new File ("stars.txt");
    BufferedWriter outStars = new BufferedWriter(new FileWriter(testStars, true));
    SaleReader reader = new SaleReader();

     try
    {
        List<Sales> sale = reader.readSale("out1.txt");   
        for (Sales s : sale)
        {
            if(s.computeSales()>= 8000)
            {
            outStars.write("" + s.getDistrictValue());
            outStars.newLine();
            outStars.close();

            }
        }
    }catch (IOException ex) {
        Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我从这里调用它。

public class Sales 
{
 private int salesID;
 private String firstName;
 private String lastName;
 private double officeSupplies;
 private double books;
 private double paper;
 private String districtValue;
 private String preferredContact;

public int getSalesID() {
    return salesID;
}

public void setSalesID(int salesID) {
    this.salesID = salesID;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public double getOfficeSupplies() {
    return officeSupplies;
}

public void setOfficeSupplies(double officeSupplies) {
    this.officeSupplies = officeSupplies;
}

public double getBooks() {
    return books;
}

public void setBooks(double books) {
    this.books = books;
}

public double getPaper() {
    return paper;
}

public void setPaper(double paper) {
    this.paper = paper;
}

public String getPreferredContact() {
    return preferredContact;
}

public void setPreferredContact(String preferredContact) {
    this.preferredContact = preferredContact;
}    

public String getDistrictValue() {
    return districtValue;
}

public void setDistrictValue(String districtValue) {
    this.districtValue = districtValue;
}

@Override
public String toString() {
    return "Sales{" + "salesID=" + salesID + ", firstName=" + firstName + ", lastName=" + lastName + ", officeSupplies=" + officeSupplies + ", books=" + books + ", paper=" + paper + ", districtValue=" + districtValue + ", preferredContact=" + preferredContact + '}';
}

public double computeSales()
{
    return officeSupplies + books + paper;
}   

}

如果您的 class 被调用,例如 SalesWriter 并且您有此代码

public void writeStars() throws IOException
{
    File testStars = new File ("stars.txt");
    BufferedWriter outStars = new BufferedWriter(new FileWriter(testStars, true));
    SaleReader reader = new SaleReader();

     try
    {
        List<Sales> sale = reader.readSale("out1.txt");   
        for (Sales s : sale)
        {
            if(s.computeSales()>= 8000)
            {
            outStars.write(s);
            outStars.newLine();

            }
        }
        outStars.close();

    }catch (IOException ex) {
        Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
    }
}

然后从你的主代码中你可以这样调用它

new SalesWriter ().writeStars ();

编辑

看看我是如何删除这个方法的参数的,因为无论如何你都在用这个方法读取文件。