Передача пути к файлу и запуск класса - 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);
}
}
}