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

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


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

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

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