java中的文件输出不工作

java中的文件输出不工作,java,Java,所以我的家庭作业是创建一个停车场模拟器,它接收来自input.txt文件的查询,这些查询作为JSON对象数组传递,其中包含一个字符串查询和一个int parkingID。对于每一个查询,我都需要执行一个操作。当我试图将信息输出到文件时,什么也没有发生。你能看看我做错了什么吗 import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; impor

所以我的家庭作业是创建一个停车场模拟器,它接收来自input.txt文件的查询,这些查询作为JSON对象数组传递,其中包含一个字符串查询和一个int parkingID。对于每一个查询,我都需要执行一个操作。当我试图将信息输出到文件时,什么也没有发生。你能看看我做错了什么吗

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
这里是主要功能

public class Company{

    public static void main(String[] args) throws Exception{ 


        String content = new 
String(Files.readAllBytes(Paths.get("input.txt")));
        Gson gson= new GsonBuilder().create();
        Type listType = new TypeToken<List<Query>>() {}.getType();
        List<Query> queries = gson.fromJson(content,listType);
        PrintWriter out = new PrintWriter("output.txt");
        ParkingLot[] array = new ParkingLot[10]; 
        array[0] = new ParkingLot(0);

        int counter = 1;

       for(int i =0; i < queries.size(); i++)
        {
           try{
               String query = queries.get(i).getQuery();
             int queryParkingID = queries.get(i).getParkingID();

                   if(query.equals("car entered"))
                   {
                       array[queryParkingID].carEntered();
                   }
                   else if(query.equals("car left"))
                   {
                       array[queryParkingID].carLeft();
                   }
                   else if(query.equals("Parking lot opened"))
                   {
                       array[counter] = new ParkingLot(counter);
                       counter++;
                   }

               }

            catch(ArrayIndexOutOfBoundsException e){
                System.out.println(e);
                 String query = queries.get(i).getQuery();
                 int queryParkingID = queries.get(i).getParkingID();
                if (queryParkingID == -1)
                   {
                       if(query.equals("bandwidth"))
                       {
                           out.println(array[queryParkingID].getBandwidth());
                       }
                       else if(query.equals("bandwidth all"))
                       {
                           out.println(ParkingLot.bandwidthAll);
                       }
                       else if(query.equals("parked"))
                       {
                           out.println(array[queryParkingID].getCarsParked());
                       }
                       else if(query.equals("parked all"))
                       {
                           out.println(ParkingLot.carsParkedAll);
                       }
                       else if(query.equals("revenue"))
                       {
                           out.println(array[queryParkingID].getRevenue());
                       }
                       else if(query.equals("revenue all"))
                       {
                           out.println(ParkingLot.revenueAll);
                       }
                   }
                }
            catch(NullPointerException e){
                  System.out.println(e);
                    }

            catch(Exception e){
              System.out.println(e);
                }


        }
     out.close();
    }     



   }
这是停车场课

public class ParkingLot {

private int parkingID;
private static int parkingFee = 5;
private static int maxCarCapacity = 30;
private int revenue;
private int carsParked;
static int carsParkedAll;
static int revenueAll;
private int bandwidth;
static int bandwidthAll;

public ParkingLot(int parkingID) 
{
    this.parkingID = parkingID;
    revenue = 0;
    carsParked = 0;
    carsParkedAll = 0;
}
public void carEntered()
{
    if(carsParked < maxCarCapacity )
    {

    revenue += parkingFee;
    revenueAll += parkingFee;
    carsParked++;
    carsParkedAll++; 
    bandwidth++;
    bandwidthAll++;
    }   
}
public void carLeft()
{
    if(carsParked > 0)
    {   
    carsParked--; 
    carsParkedAll--; 
    }
}   
public int getCarsParkedAll() {
        return carsParkedAll;
    }

public int getRevenueAll() {
        return revenueAll;
    }

public int getBandwidth() {
        return bandwidth;
    }
public void setBandwidth(int bandwidth) {
        this.bandwidth = bandwidth;
    }
public int getBandwidthAll() {
        return bandwidthAll;
    }

public static int getParkingFee() {
    return parkingFee;
}
public static void setParkingFee(int parkingFee) {
    ParkingLot.parkingFee = parkingFee;
}


public int getParkingID() {
    return parkingID;
}
public void setParkingID(int parkingID) {
    this.parkingID = parkingID;
}


public int getMaxCarCapacity() {
    return maxCarCapacity;
}
public void setMaxCarCapacity(int maxCarCapacity) {
    ParkingLot.maxCarCapacity = maxCarCapacity;
}


public int getRevenue() {
    return revenue;
}
public void setRevenue(int revenue) {
    this.revenue = revenue;
}

public int getCarsParked() {
    return carsParked;
}
public void setCarsParked(int carsParked) {
    this.carsParked = carsParked;
}




}
我们还必须处理异常,因此我必须将out部分移动到catch块中,以便在到达越界异常时可以打印出来


非常感谢您的帮助。

不清楚该代码应该做什么,这是一条漫长的路要走。但是,您只能在异常捕获处理程序中写入out,这是不对的,因为越界异常捕获-1并在该异常中使用它来输出数据。尽管它仍然不工作,即使它不在catch块中,因为
printwitter
通常是可以工作的,但我想问题是在if块中。您可以使用调试器或添加printfs进行调试。目前还不清楚这些代码应该做什么,这是一条很长的路要走。但是,您只能在异常捕获处理程序中写入out,这是不对的,因为越界异常捕获-1并在该异常中使用它来输出数据。尽管它仍然不工作,即使它不在catch块中,因为
printwitter
通常是可以工作的,但我想问题是在if块中。您可以使用调试器或添加printfs进行调试。
public class ParkingLot {

private int parkingID;
private static int parkingFee = 5;
private static int maxCarCapacity = 30;
private int revenue;
private int carsParked;
static int carsParkedAll;
static int revenueAll;
private int bandwidth;
static int bandwidthAll;

public ParkingLot(int parkingID) 
{
    this.parkingID = parkingID;
    revenue = 0;
    carsParked = 0;
    carsParkedAll = 0;
}
public void carEntered()
{
    if(carsParked < maxCarCapacity )
    {

    revenue += parkingFee;
    revenueAll += parkingFee;
    carsParked++;
    carsParkedAll++; 
    bandwidth++;
    bandwidthAll++;
    }   
}
public void carLeft()
{
    if(carsParked > 0)
    {   
    carsParked--; 
    carsParkedAll--; 
    }
}   
public int getCarsParkedAll() {
        return carsParkedAll;
    }

public int getRevenueAll() {
        return revenueAll;
    }

public int getBandwidth() {
        return bandwidth;
    }
public void setBandwidth(int bandwidth) {
        this.bandwidth = bandwidth;
    }
public int getBandwidthAll() {
        return bandwidthAll;
    }

public static int getParkingFee() {
    return parkingFee;
}
public static void setParkingFee(int parkingFee) {
    ParkingLot.parkingFee = parkingFee;
}


public int getParkingID() {
    return parkingID;
}
public void setParkingID(int parkingID) {
    this.parkingID = parkingID;
}


public int getMaxCarCapacity() {
    return maxCarCapacity;
}
public void setMaxCarCapacity(int maxCarCapacity) {
    ParkingLot.maxCarCapacity = maxCarCapacity;
}


public int getRevenue() {
    return revenue;
}
public void setRevenue(int revenue) {
    this.revenue = revenue;
}

public int getCarsParked() {
    return carsParked;
}
public void setCarsParked(int carsParked) {
    this.carsParked = carsParked;
}




}
 {"parkingID":-3,"query":"bandwidth"}