почему мой printWriter не работает?

Я не уверен, почему это не работает, я пробовал все, что мог. Я чувствую, что очень близок к тому, чтобы сделать это правильно, но просто не могу собрать последние несколько вещей воедино. Я также понимаю, что это не очень хорошо написано, но я новичок в этом и буду признателен за любую помощь, которую я могу получить.

        public void actionPerformed(ActionEvent event) {
        Object source = event.getSource();
        Object flight = AirlinesBox.getSelectedItem();
        Object DepartureLocation = LocationsBox.getSelectedItem();
        Object Destination = DestinationBox.getSelectedItem();
        Object ReturnOrSingle = TypeOfFlightBox.getSelectedItem();
        Object FlightDate = DateBox.getSelectedItem();
        Object FlightTime = TimeBox.getSelectedItem();
        Object FlightSeat = classOfSeatBox.getSelectedItem();
        Object FlightBag = FlightBagBox.getSelectedItem();
        Object FlightMeal = FlightMealBox.getSelectedItem();



        if(source == PrintTicket)
        {

            try {
                PrintWriter write = new PrintWriter("Receipt.txt");
                write.println("_______________________________________");
                write.println("|                                      |");
                write.println("|   --------------------------------   |");
                write.println("|   |  This is your Flight Receipt |   |");
                write.println("|   |      Please keep it safe     |   |");
                write.println("|   --------------------------------   |");
                write.println("|                                      |");
                write.println("|   --------------------------------   |");
                write.println("|   |                              |   |");
                write.println("     Airline= " + flight);
                write.println("     Departure Location= " + DepartureLocation);
                write.println("     Destination= " + Destination);
                write.println("     Flight Type= " + ReturnOrSingle);
                write.println("     Flight Day= " + FlightDate);
                write.println("     Flight Time= " + FlightTime);
                write.println("     Flight Seat Type= " + FlightSeat);
                write.println("     Extra Bags= " + FlightBag);
                write.println("     Flight Meal= " + FlightMeal);
                write.println("|   |                              |   |");
                write.println("|   --------------------------------   |");
                write.println("----------------------------------------");

                write.close();



                System.out.println(AirlinesBox.getSelectedItem());
                System.out.println(LocationsBox.getSelectedItem());
                System.out.println(DestinationBox.getSelectedItem());
                System.out.println(TypeOfFlightBox.getSelectedItem());
                System.out.println(DateBox.getSelectedItem());
                System.out.println(TimeBox.getSelectedItem());
                System.out.println(classOfSeatBox.getSelectedItem());
                System.out.println(FlightBagBox.getSelectedItem());
                System.out.println(FlightMealBox.getSelectedItem());

                }

            catch (FileNotFoundException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }





        }

person UpAllNight123    schedule 07.07.2015    source источник
comment
Опубликуйте минимальный, полный и проверяемый пример   -  person Reimeus    schedule 07.07.2015
comment
Пора заняться отладкой, так как вы должны сначала изолировать ошибку, прежде чем исправлять ее.   -  person Hovercraft Full Of Eels    schedule 07.07.2015
comment
это минимальный?   -  person UpAllNight123    schedule 07.07.2015
comment
Я задам очевидный вопрос - что именно не работает и какие ошибки вы получаете?   -  person Sh4d0wsPlyr    schedule 07.07.2015
comment
в этом проблема: нет ошибок, когда он запускается, он просто ничего не делает, я хочу, чтобы он распечатал квитанцию ​​в новый текстовый файл, но когда кнопка нажата, она ничего не делает, я только помещаю часть println туда, чтобы убедиться что оператор If работал   -  person UpAllNight123    schedule 07.07.2015
comment
Есть ли конкретная причина для использования PrintWriter?   -  person Sh4d0wsPlyr    schedule 07.07.2015
comment
@ UpAllNight123, но он не полный, поэтому любой ответ здесь будет предположением   -  person Reimeus    schedule 07.07.2015
comment
Разве это не способ заставить его печатать в новый файл?   -  person UpAllNight123    schedule 07.07.2015
comment
Вы добавляли этот ActionListener в PrintTicket компонент? Может быть source == PrintTicket никогда не true   -  person Titus    schedule 07.07.2015
comment
"this is the minimal" - и полностью не запускается и не тестируется. Пожалуйста, прочтите или перечитайте ссылку на первый комментарий. Кроме того, "thats is the problem there is not errors when its running it simply doesnt do anything i want it to print the receipt into a new txt file but when the button is pressed it doesnt do anything, i only put the println part in there to make sure that the If statement was working" - отладка - это гораздо больше, чем просто исправление ошибок компиляции. Это означает использование отладчика и последующего выполнения кода, чтобы увидеть, где находятся логические ошибки.   -  person Hovercraft Full Of Eels    schedule 07.07.2015
comment
спасибо за помощь всем, в конце концов, он печатал квитанцию, но отправлял его куда-то на мой компьютер, как только я установил путь к своему рабочему столу, он работал отлично :) так что спасибо за помощь   -  person UpAllNight123    schedule 09.07.2015


Ответы (1)


PrintWriter имеет неприятную привычку скрывать от вас ошибки. Я бы порекомендовал перейти на другой класс чтения / записи. Пожалуйста, посмотрите следующую информацию о BufferedWriter. Или, если вы застряли с PrintWriter, посмотрите, как проверить ошибки.

http://www.mkyong.com/java/how-to-write-to-file-in-java-bufferedwriter-example/

Имейте в виду, что вам придется добавлять символы новой строки с помощью BufferedReader, поскольку он не имеет метода println. Дополнительные сведения о различиях можно найти в этом посте.

Разница между java.io.PrintWriter и java.io.BufferedWriter?

person Sh4d0wsPlyr    schedule 07.07.2015
comment
Я бы сказал PrintStream (возможно, обернув BufferedOutputStream), а не BufferedWriter, поскольку это позволит OP сохранять операторы println и будет иметь те же варианты использования, что и System.out (и по-прежнему генерирует исключения по мере их возникновения) - person Ian McLaird; 07.07.2015