Передача пути к файлу и запуск класса - Java
Формулировка задачи:
Добрый день!
Помогите разобраться
Есть два класса один отвечает за открытие диалогового окна и выбора файла, а второй класс прасит файл (в данный момент прописан жестко путь и имя файла).
Вопросы:
1. Как мне передать путь и имя файла, который выбирает пользователь (1 класс ) во строку 21 (2 класс) ?
2. как запустить класс который начнет парсить файл?
Этот класс парит файл
Листинг программы
- //Данный класс открывает форму для выбора файла
- package controller;
- import javafx.fxml.FXML;
- import javafx.scene.control.Button;
- import javafx.stage.FileChooser;
- import javafx.stage.Stage;
- import javafx.stage.Window;
- import java.io.*;
- public class download_form {
- @FXML
- private Button btnExit;
- @FXML
- private Window stage;
- @FXML
- private Window primaryStage;
- @FXML
- public void handleButtonAction() { //Открываем диалоговое окно для выбора файла
- FileChooser fileChooser = new FileChooser();
- FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Файлы XML (*.xml)","*.xml");
- fileChooser.setTitle("Открыть файл для загрузки");
- fileChooser.getExtensionFilters().add(extFilter);
- @SuppressWarnings("deprecation") File file = fileChooser.showOpenDialog(primaryStage);
- if (file != null){
- System.out.println(file);
- } else {
- System.out.println("Файл не выбран");
- }
- }
- @FXML
- void Close() {
- ((Stage)this.btnExit.getScene().getWindow()).close(); //Закрываем программу по кнопке Выход
- }
- }
Листинг программы
- package controller;
- import org.w3c.dom.*;
- import org.xml.sax.SAXException;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import java.io.IOException;
- /**
- * Created by o.veschenikin on 20.06.2017.
- */
- public class XMLParser {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder documentBuilder = factory.newDocumentBuilder();
- public XMLParser() throws IOException, SAXException, ParserConfigurationException {
- Document document = documentBuilder.parse("G:/40.xml");
- String Familiya; //Фамилия
- String Name; //Имя
- String Otch; //Отчество
- String BerthDay; //Дата рожд.
- String CodVidDoc;//Код вида документа
- String Seria; //Серия док
- String Number; //Номер док
- NodeList nodeList = document.getElementsByTagName("ПерсИнфо"); //Задаем родительский елемент
- for (int i= 0; i < nodeList.getLength(); i++){
- Element element = (Element) nodeList.item(i);
- //Обрабатываем тег ФИОД
- Node item = element.getElementsByTagName("ФИОД").item(0);
- NamedNodeMap FIOD = item.getAttributes();
- Familiya = FIOD.getNamedItem("Фамилия").getNodeValue();
- Name = FIOD.getNamedItem("Имя").getNodeValue();
- Otch = FIOD.getNamedItem("Отчество").getNodeValue();
- BerthDay = FIOD.getNamedItem("ДатаРожд").getNodeValue();
- //Обрабатываем тег Документ
- Node docum = element.getElementsByTagName("Документ").item(0);
- NamedNodeMap doc = docum.getAttributes();
- CodVidDoc = doc.getNamedItem("КодВидДок").getNodeValue();
- Seria = doc.getNamedItem("Серия").getNodeValue();
- Number = doc.getNamedItem("Номер").getNodeValue();
- System.out.println(Familiya + " " + Name + " " + Otch + " " + BerthDay
- + " " + CodVidDoc + " "+ Seria + " " + Number);
- }
- }
- }
Решение задачи: «Передача пути к файлу и запуск класса»
textual
Листинг программы
- package controller;
- import org.w3c.dom.*;
- import org.xml.sax.SAXException;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import java.io.IOException;
- /**
- * Created by o.veschenikin on 20.06.2017.
- */
- public class XMLParser {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder documentBuilder = factory.newDocumentBuilder();
- public XMLParser() {}
- public void parse(String path) throws IOException, SAXException, ParserConfigurationException {
- Document document = documentBuilder.parse(path);
- String Familiya; //Фамилия
- String Name; //Имя
- String Otch; //Отчество
- String BerthDay; //Дата рожд.
- String CodVidDoc;//Код вида документа
- String Seria; //Серия док
- String Number; //Номер док
- NodeList nodeList = document.getElementsByTagName("ПерсИнфо"); //Задаем родительский елемент
- for (int i= 0; i < nodeList.getLength(); i++){
- Element element = (Element) nodeList.item(i);
- //Обрабатываем тег ФИОД
- Node item = element.getElementsByTagName("ФИОД").item(0);
- NamedNodeMap FIOD = item.getAttributes();
- Familiya = FIOD.getNamedItem("Фамилия").getNodeValue();
- Name = FIOD.getNamedItem("Имя").getNodeValue();
- Otch = FIOD.getNamedItem("Отчество").getNodeValue();
- BerthDay = FIOD.getNamedItem("ДатаРожд").getNodeValue();
- //Обрабатываем тег Документ
- Node docum = element.getElementsByTagName("Документ").item(0);
- NamedNodeMap doc = docum.getAttributes();
- CodVidDoc = doc.getNamedItem("КодВидДок").getNodeValue();
- Seria = doc.getNamedItem("Серия").getNodeValue();
- Number = doc.getNamedItem("Номер").getNodeValue();
- System.out.println(Familiya + " " + Name + " " + Otch + " " + BerthDay
- + " " + CodVidDoc + " "+ Seria + " " + Number);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д