I/O Java必需int

I/O Java必需int,java,io,try-catch,Java,Io,Try Catch,我正在尝试使用I/O提供我需要的库存报告(如果库存低于8) 它告诉我,myShop.listLowStockToFile()需要一个int;当我添加一个数字时,它告诉我这里不允许“void”。我怎样才能解决这个问题 public void listLowStockToFile(int threshhold) { System.out.println("****The Stock that is getting low is: " + " Minimum " +threshhold

我正在尝试使用I/O提供我需要的库存报告(如果库存低于8)

它告诉我,
myShop.listLowStockToFile()需要一个
int
;当我添加一个数字时,它告诉我这里不允许“
void
”。我怎样才能解决这个问题

  public void listLowStockToFile(int threshhold)
   {
   System.out.println("****The Stock that is getting low is: " + " Minimum " +threshhold + " Report for Bob Shaw****\n");
   for (Item nextItem : items)
   {
   if(nextItem.getNuminStock() < threshhold)
   {
       System.out.println(nextItem);
   }
}
}

public class Report {
    public static void main(String[] args) {
        Shop myShop = new Shop();

        CD cd1 = new CD("Abba Gold", "Abba", 15);
        myShop.addItem(cd1);

        Game game1 = new Game("Chess", 2, 39.95);
        myShop.addItem(game1);

        ElectronicGame eg1 = new ElectronicGame("Shrek", "PS2", 1, 79.50);
        myShop.addItem(eg1);
        ElectronicGame eg2 = new ElectronicGame("Doom", "PC", 2, 30.20);
        myShop.addItem(eg2);
        ElectronicGame eg3 = new ElectronicGame("AFL", "PS2", 2, 49.95);
        myShop.addItem(eg3);


        cd1.receiveStock(3);
        game1.receiveStock(5);
        eg1.receiveStock(10);
        eg2.receiveStock(1);
        cd1.receiveStock(7);


        cd1.sellCopy(true);
        cd1.sellCopy(true);
        eg2.sellCopy(true);

        myShop.listItems();
        myShop.listLowStockToFile(8);
        myShop.listGamesByPlatform("PS2");
        myShop.calcTotalSales();

        Game game2 = new Game("Chess", 2, 39.95);
        myShop.addItem(game2);

        eg2.sellCopy(false);

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("LowStock.txt"));
            writer.write("Report dated" + new Date() + "\n");
            writer.write(myShop.listLowStockToFile()); // This line.
            writer.close();
            System.out.println("Report finished");
        } catch (Exception ex) {
            System.out.println("File I/O error" + ex);
        }
    }
}
public void listLowStockToFile(int threshold)
{
System.out.println(“****正在走低的股票是:“+”最小“+阈值+”Bob Shaw报告****\n”);
用于(项目下一项:项目)
{
if(nextItem.getNuminStock()
您需要
listLowStockToFile
返回字符串:

public String listLowStockToFile(int threshhold) {
   String rtn = "****The Stock that is getting low is: " + " Minimum " +threshhold + " Report for Bob Shaw****\n";
   for (Item nextItem : items) {
      if(nextItem.getNuminStock() < threshhold) {
         rtn += nextItem.toString() + "\n";
      }
   }

   System.out.print(rtn);

   return rtn;
}
公共字符串listLowStockToFile(int threshold){
String rtn=“****正在走低的股票是:“+”最小值“+阈值+”Bob Shaw报告*****\n”;
用于(项目下一项:项目){
if(nextItem.getNuminStock()

原因是
bufferedwriter.write
字符串作为参数。

您尚未显示相关代码;但是我想,
listLowStockToFile
有返回类型
void
,而不是值类型。
listLowStockToFile
接受
int
,但不返回任何内容(
void
),所以不能像
writer.write(myShop.listLowStockToFile())那样使用它
writer.write(myShop.listLowStockToFile(8))
那么我能做些什么呢?@Bob如果你展示了
listLowStockToFile()
方法并解释了你想要它做什么,那会有帮助的。很抱歉,新的情况,这足够继续下去了吗?让我编译,但是从我的输出中去掉阈值我害怕“输出”,我想你指的是stdout(控制台)。当你说添加一个系统时,你可以简单地将
System.print(rtn)
添加到
listLosStockToFile
中。print(rtn)会不会取代你编写的代码末尾的返回rtn?只需将
System.out.print(rtn)
放在
return rtn
之前。我更新了我的答案以反映这一变化。