Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > исправление кода конвертора


Автор: annnna 14.5.2010, 00:24
Программа должна ковертировать xml файл в текстовый.программа запускается, но в результате получается пустой файл. Помогите,пожалуйста, исправить код
                                             
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.awt.*;

public class Convert {

  public static void main(String[] arg) throws IOException{
    String filnamn = JOptionPane.showInputDialog("имя файла для чтения");
      
      BufferedReader instrm = new BufferedReader(new FileReader(filnamn));
      String filnamn2 = JOptionPane.showInputDialog("имя файла");
      PrintWriter utstrm = new PrintWriter(new BufferedWriter
                                        (new FileWriter(filnamn2)));
        int radNr = 0;
        int i = 0;
        
           while (true){
            String rad = instrm.readLine();
             if (rad == null)
                break;   //end of file
               radNr ++;
             utstrm.println(rad);
           }
   JOptionPane.showMessageDialog(null, "завершение копирования");
   utstrm.close();
  // System.out.flush();
   Scanner sc = new Scanner(System.in);
        JOptionPane.showInputDialog("имя файла который будет изменен в текстовый");
        System.out.flush();
       String namn = sc.next();
        
        BufferedReader inFil = new BufferedReader(new FileReader(namn));
        
        String rad = inFil.readLine();
        for (radNr = 0; i < rad.length(); radNr++){
        while ((i = inFil.read()) != -1){
            char c = (char) i;
                switch© {
                 case '<':
               if ( c == '<')
                    System.out.print('\u0020');    //
              else {
                   System.out.print©;                      
              }
               break;
                 case '>':
                  if ( c  == '>')
                    System.out.print('\u0020');
               else {
                      System.out.print©;
               }
                  break;
            case '?':
                  if ( c == '?')
                    System.out.print('\u0020');
               else { System.out.print©;   }
                  break;
                   case '/':
                  if ( c == '/')
                   System.out.print('\u0020');
            else {  System.out.print©;  }
                   break;
                   case '}':
                  if ( c == '}')
                   System.out.print('\u0020');
             else { System.out.print©;   }
                  break;
                  case '{':
                  if ( c == '{')
                System.out.print('\u0020');                                 
               else {
                      System.out.print©;   }
                  break;
                  default:
                      radNr++;
             }
        }
    }

    System.out.print(" ");
    System.out.flush();
   }
}
Код



Автор: Sibit 14.5.2010, 05:45
А какой результат должен быть? Я так понял, ты просто копируешь один xml  в другой, потом убираешь некоторые символы? Нпонятно, зачем второй раз спрашивать имя файла? В общем комментарии объясняющие, что происходит или должно происходить, совсем не помешали бы.

Код

 JOptionPane.showInputDialog("имя файла который будет изменен в текстовый");


в этом месте вводимая строка просто теряется

Код

                switch( с )  {
                 case '<':
               if ( c == '<')
                    System.out.print('\u0020');    //
              else {
                   System.out.print( с );
              }
               break;


непонятный момент.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)