程序永远运行但不显示任何内容

时间:2016-09-16 11:59:21

标签: java

Account(balance,account number)-toString(): ("Account Number: "+getNumber()+"/n Account Balance: "+getBalance())

Customer(fName,lName,mName,account)-toString(): ("Customer Name:"+getFirstName()+" "+getMidName()+" "+getLastName()+"  Customer Account:"+getAccount()) 
  Movie m = MovieCreator.build(new FileDataSourceViaHeapImpl(dst.toString()));
        List<Track> nuTracks  = new LinkedList<>();
        for (Track t : m.getTracks()) {
            // Re-use all tracks besides the audio track
            if (!"soun".equals(t.getHandler())) {
                nuTracks.add(t);
            }

        }
        Track nuAudio = new AACTrackImpl(new FileDataSourceViaHeapImpl("/storage/extSdCard/Xender/audio/Temp.aac"));
            nuTracks.add(nuAudio);
            m.setTracks(nuTracks);
        Container mp4file = new DefaultMp4Builder().build(m);
        mp4file.writeContainer(new FileOutputStream(dst.toString()).getChannel());

4 个答案:

答案 0 :(得分:7)

在你的:

while(reader.hasNextLine())
{
  count++;
}

你只是在检查读者是否有下一行,但你不会进一步。我的意思是想象你在第一行,并检查是否有第二行。然后在下一次迭代中,您仍然在第一行。你需要更进一步,像这样:

reader.nextLine()

此外,如果您在第一个while中执行此操作,那么您的第二个while将无法运行,您需要以其他方式处理此问题。另外一件事 - 你对这个数组(客户端)所做的事情没有意义,你需要在这些循环之前创建该数组。

答案 1 :(得分:2)

这会导致您的代码永远运行:

     while(reader.hasNextLine())
    {
        count++;
    }

你必须在里面调用reader.nextLine(),否则就是无限循环

答案 2 :(得分:1)

 while(reader.hasNextLine())
    {
        count++;
    }

你永远不会打破这个循环。如果您正在使用Eclipse环境,那么作为对未来的建议,您可以进入调试模式,&#39;通过在代码的任何一行设置断点(ctrl + shift + b),然后,在程序停止该行后,您可以使用f5-7浏览代码。

当我担心我的程序在某个地方遇到某种循环时,我觉得这很有用。

答案 3 :(得分:0)

我不是专家,但首先执行的是主要方法。

 ConcreteClass first = new ConcreteClass();
 first.readFile();
 first.showCustomers();
 System.out.println("Hello World");

此方法之后会调用其他类和方法。

至少你应该打印Hello World。 (除了循环使程序永远执行...防止这种情况发生)问题可能也是结构。你也不需要这么长的程序来打印你好世界。打印的主要方法就足够了。

确保您了解方法的连接。