Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确打印到文件,但随后挂起_Java_Loops_Printing_Output_Switching - Fatal编程技术网

Java 正确打印到文件,但随后挂起

Java 正确打印到文件,但随后挂起,java,loops,printing,output,switching,Java,Loops,Printing,Output,Switching,我将我的程序设置为打印到一个文件,该文件工作正常。唯一的问题是,由于我做了这个更改,在将数据输出到文件后,程序并没有像应该的那样继续 Loan.printAmortTable(name, custID, loanID, cBalance, term, cPayment); System.out.println(); System.out.print("Would you like to print this schedule? y/n: "); String l = input.next();

我将我的程序设置为打印到一个文件,该文件工作正常。唯一的问题是,由于我做了这个更改,在将数据输出到文件后,程序并没有像应该的那样继续

Loan.printAmortTable(name, custID, loanID, cBalance, term, cPayment);
System.out.println();
System.out.print("Would you like to print this schedule? y/n: ");
String l = input.next();
switch(l)
{
case "y": 
    try 
    {
         Loan.printSchedule(name, custID, loanID, cBalance, term, cPayment);
    } 
    catch (FileNotFoundException e) 
        {
         e.printStackTrace();
    }
    System.out.println("Printed to output.txt");
    input.next();
    break;
case "n":
    break;
}
贷款时间表

public static void printSchedule(String name, int custID, int loanID, double loanAmount, int term, double payment) throws FileNotFoundException
{
PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
out.println("Name " + name);
out.println("ID # " + custID);
out.println("Loan # " + loanID);
out.println("Amount Borrowed " + loanAmount);
out.println("Interest Rate 10.99%");
out.println("Term of the loan " + term);
out.println();

out.println("Payment     Payment     Interest     Principle     Outstanding");
out.println("Number      Amount      Portion      Portion       Balance  ");
double pay = Loan.amortization(loanAmount, term);
double balance = loanAmount;
int i = 0;
while (i<term*12)
{
out.printf("%3d", i + 1);
out.printf("%14.2f",pay);
double interest = balance * (interestRate);
interest = (double)Math.round(interest*100)/100;
out.printf("%11.2f", interest);
double principal = payment - interest;
principal = (double)Math.round(principal*100)/100;
out.printf("%15.2f", principal);
balance = balance - principal;   
    balance = (double) Math.round(balance*100)/100;
    out.printf("%15.2f%n", balance);
    i++;
}
out.close();
}
public static void printSchedule(字符串名称、int custID、int loanID、double loanAmount、int term、double payment)抛出FileNotFoundException
{
PrintStream out=新的PrintStream(新文件outputstream(“output.txt”);
系统放样;
out.println(“名称”+名称);
out.println(“ID#”+custID);
out.println(“贷款”+loanID);
out.println(“借款金额”+贷款金额);
out.println(“利率10.99%”);
out.println(“贷款期限”+期限);
out.println();
out.println(“未偿付款利息原则”);
out.println(“数字金额部分余额”);
双倍支付=贷款摊销(贷款金额,期限);
双倍余额=贷款金额;
int i=0;

而(i您已经切换了
System.out
这里:

System.setOut(out);

然后,关闭该流。从该方法返回后,再次尝试打印到
System.out
,但失败。请删除
System.setOut(out);
行,它应该可以工作。

您确定
正在运行吗(是的,它正在终止。我有一个完全相同的循环,在一个方法中,它将相同的信息打印到屏幕上,并且工作得非常完美。