Передача пути к файлу и запуск класса - 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д