Передача пути к файлу и запуск класса - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день! Помогите разобраться Есть два класса один отвечает за открытие диалогового окна и выбора файла, а второй класс прасит файл (в данный момент прописан жестко путь и имя файла). Вопросы: 1. Как мне передать путь и имя файла, который выбирает пользователь (1 класс ) во строку 21 (2 класс) ? 2. как запустить класс который начнет парсить файл?
Листинг программы
  1. //Данный класс открывает форму для выбора файла
  2. package controller;
  3. import javafx.fxml.FXML;
  4. import javafx.scene.control.Button;
  5. import javafx.stage.FileChooser;
  6. import javafx.stage.Stage;
  7. import javafx.stage.Window;
  8. import java.io.*;
  9. public class download_form {
  10. @FXML
  11. private Button btnExit;
  12. @FXML
  13. private Window stage;
  14. @FXML
  15. private Window primaryStage;
  16. @FXML
  17. public void handleButtonAction() { //Открываем диалоговое окно для выбора файла
  18. FileChooser fileChooser = new FileChooser();
  19. FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Файлы XML (*.xml)","*.xml");
  20. fileChooser.setTitle("Открыть файл для загрузки");
  21. fileChooser.getExtensionFilters().add(extFilter);
  22. @SuppressWarnings("deprecation") File file = fileChooser.showOpenDialog(primaryStage);
  23. if (file != null){
  24. System.out.println(file);
  25. } else {
  26. System.out.println("Файл не выбран");
  27. }
  28. }
  29. @FXML
  30. void Close() {
  31. ((Stage)this.btnExit.getScene().getWindow()).close(); //Закрываем программу по кнопке Выход
  32. }
  33. }
Этот класс парит файл
Листинг программы
  1. package controller;
  2. import org.w3c.dom.*;
  3. import org.xml.sax.SAXException;
  4. import javax.xml.parsers.DocumentBuilder;
  5. import javax.xml.parsers.DocumentBuilderFactory;
  6. import javax.xml.parsers.ParserConfigurationException;
  7. import java.io.IOException;
  8. /**
  9. * Created by o.veschenikin on 20.06.2017.
  10. */
  11. public class XMLParser {
  12. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  13. DocumentBuilder documentBuilder = factory.newDocumentBuilder();
  14.  
  15. public XMLParser() throws IOException, SAXException, ParserConfigurationException {
  16. Document document = documentBuilder.parse("G:/40.xml");
  17. String Familiya; //Фамилия
  18. String Name; //Имя
  19. String Otch; //Отчество
  20. String BerthDay; //Дата рожд.
  21. String CodVidDoc;//Код вида документа
  22. String Seria; //Серия док
  23. String Number; //Номер док
  24. NodeList nodeList = document.getElementsByTagName("ПерсИнфо"); //Задаем родительский елемент
  25. for (int i= 0; i < nodeList.getLength(); i++){
  26. Element element = (Element) nodeList.item(i);
  27. //Обрабатываем тег ФИОД
  28. Node item = element.getElementsByTagName("ФИОД").item(0);
  29. NamedNodeMap FIOD = item.getAttributes();
  30. Familiya = FIOD.getNamedItem("Фамилия").getNodeValue();
  31. Name = FIOD.getNamedItem("Имя").getNodeValue();
  32. Otch = FIOD.getNamedItem("Отчество").getNodeValue();
  33. BerthDay = FIOD.getNamedItem("ДатаРожд").getNodeValue();
  34.  
  35. //Обрабатываем тег Документ
  36. Node docum = element.getElementsByTagName("Документ").item(0);
  37. NamedNodeMap doc = docum.getAttributes();
  38. CodVidDoc = doc.getNamedItem("КодВидДок").getNodeValue();
  39. Seria = doc.getNamedItem("Серия").getNodeValue();
  40. Number = doc.getNamedItem("Номер").getNodeValue();
  41. System.out.println(Familiya + " " + Name + " " + Otch + " " + BerthDay
  42. + " " + CodVidDoc + " "+ Seria + " " + Number);
  43.  
  44. }
  45. }
  46. }

Решение задачи: «Передача пути к файлу и запуск класса»

textual
Листинг программы
  1. package controller;
  2.  
  3. import org.w3c.dom.*;
  4. import org.xml.sax.SAXException;
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7. import javax.xml.parsers.ParserConfigurationException;
  8. import java.io.IOException;
  9.  
  10. /**
  11.  * Created by o.veschenikin on 20.06.2017.
  12.  */
  13.  
  14. public class XMLParser  {
  15.     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  16.     DocumentBuilder documentBuilder = factory.newDocumentBuilder();
  17.  
  18.     public XMLParser() {}
  19.  
  20.     public void parse(String path) throws IOException, SAXException, ParserConfigurationException {
  21.         Document document = documentBuilder.parse(path);
  22.         String Familiya; //Фамилия
  23.         String Name;     //Имя
  24.         String Otch;     //Отчество
  25.         String BerthDay; //Дата рожд.
  26.         String CodVidDoc;//Код вида документа
  27.         String Seria;    //Серия док
  28.         String Number;   //Номер док
  29.  
  30.         NodeList nodeList = document.getElementsByTagName("ПерсИнфо"); //Задаем родительский елемент
  31.         for (int i= 0; i < nodeList.getLength(); i++){
  32.             Element element = (Element) nodeList.item(i);
  33.  
  34.             //Обрабатываем тег ФИОД
  35.             Node item = element.getElementsByTagName("ФИОД").item(0);
  36.             NamedNodeMap FIOD = item.getAttributes();
  37.  
  38.             Familiya = FIOD.getNamedItem("Фамилия").getNodeValue();
  39.             Name = FIOD.getNamedItem("Имя").getNodeValue();
  40.             Otch = FIOD.getNamedItem("Отчество").getNodeValue();
  41.             BerthDay = FIOD.getNamedItem("ДатаРожд").getNodeValue();
  42.  
  43.  
  44.             //Обрабатываем тег Документ
  45.             Node docum = element.getElementsByTagName("Документ").item(0);
  46.             NamedNodeMap doc = docum.getAttributes();
  47.             CodVidDoc = doc.getNamedItem("КодВидДок").getNodeValue();
  48.             Seria = doc.getNamedItem("Серия").getNodeValue();
  49.             Number = doc.getNamedItem("Номер").getNodeValue();
  50.  
  51.             System.out.println(Familiya + " " + Name + " " + Otch + " " + BerthDay
  52.                     + " " + CodVidDoc + " "+ Seria + " " + Number);
  53.  
  54.  
  55.         }
  56.     }
  57.  
  58. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут