Question: My coding compile won't run, can anyone figure that out for me? Thank you. BaseballA.java coding here: import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File;
My coding compile won't run, can anyone figure that out for me? Thank you.
BaseballA.java coding here:
import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import javafx.event.ActionEvent; import javafx.scene.Node; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.Label; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.FlowPane; import javafx.scene.layout.VBox; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; import javafx.stage.Stage; import javafx.stage.WindowEvent;
public class BaseballA extends javafx.application.Application implements javafx.event.EventHandler
public void handle(ActionEvent ae) { FileChooser chooser = new FileChooser(); chooser.setInitialDirectory(new File(".")); chooser.setTitle("Select CSV file"); chooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter[] { new FileChooser.ExtensionFilter("CSV files", new String[] { "*.csv" }), new FileChooser.ExtensionFilter("All Files", new String[] { "*.*" }) }); File csvFile = chooser.showOpenDialog(stage); if (csvFile == null) { return; } tfFileName.setText(csvFile.getName()); File datFile = null; int index = csvFile.getName().lastIndexOf('.'); if ((index > 0) && (index <= csvFile.getName().length() - 2)) { datFile = new File(csvFile.getName().substring(0, index) + ".dat"); } taData.setText(""); BaseballA.TwoCounts results = convertCSVtoDAT(csvFile, datFile); tfRecordsIn.setText("" + results.getRecordsIn()); tfRecordsOut.setText("" + results.getRecordsOut()); readDat(datFile); } class TwoCounts { private int recordsIn; private int recordsOut; public TwoCounts(int in, int out) { recordsIn = in;recordsOut = out; } public int getRecordsIn() { return recordsIn; } public int getRecordsOut() { return recordsOut; } }
private BaseballA.TwoCounts convertCSVtoDAT(File csvFile, File datFile) { DataOutputStream dos = null; BufferedReader br = null; int inCount = 0; int outCount = 0; String errorMsg = ""; String errorItem = "???"; try { br = new BufferedReader(new java.io.FileReader(csvFile)); dos = new DataOutputStream(new java.io.BufferedOutputStream(new java.io.FileOutputStream(datFile))); br.readLine(); inCount++; String line; while ((line = br.readLine()) != null) { inCount++; errorMsg = "Error found in: " + line + " "; if (line.trim().length() != 0) { String[] ary = line.split(","); try { String nameF = ary[0].trim(); String nameL = ary[1].trim(); errorItem = "Birth day"; int bDay = Integer.parseInt(ary[2]); errorItem = "Birth month"; int bMon = Integer.parseInt(ary[3]); errorItem = "Birth year"; int bYear = Integer.parseInt(ary[4]); errorItem = "Weight"; int weight = Integer.parseInt(ary[5]); errorItem = "Height"; double height = Double.parseDouble(ary[6]); } catch (NumberFormatException nfe) { double height; taData.appendText(errorMsg + " Offending item is: " + errorItem + " "); } continue; double height; int weight; int bYear; int bMon; int bDay; String nameL; String nameF; dos.writeUTF(nameF); dos.writeUTF(nameL); dos.writeInt(bDay); dos.writeInt(bMon); dos.writeInt(bYear); dos.writeInt(weight); dos.writeDouble(height); outCount++; } } dos.flush(); dos.close(); br.close(); return new BaseballA.TwoCounts(inCount, outCount); } catch (FileNotFoundException fnfe) { Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR, "File " + csvFile.getName() + " does not exist. Exiting.", new ButtonType[0]); alert.setHeaderText("No File"); alert.showAndWait(); System.exit(2); } catch (IOException ioe) { Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR, "" + ioe, new ButtonType[0]); alert.setHeaderText("IO Exception"); alert.showAndWait(); System.exit(3); } return new BaseballA.TwoCounts(0, 0); } private void readDat(File datFile) { try { DataInputStream dis = new DataInputStream(new java.io.BufferedInputStream(new java.io.FileInputStream(datFile))); taData.appendText(String.format(" %-20s %10s %7s %7s ", new Object[] { "First & Last name", "Birthdate", "Weight", "Height" })); try { for (;;) { String nameF = dis.readUTF(); String nameL = dis.readUTF(); int bDay = dis.readInt(); int bMon = dis.readInt(); int bYear = dis.readInt(); int weight = dis.readInt(); double height = dis.readDouble(); taData.appendText(String.format("%-20s %10s %7s %7s ", new Object[] { nameF + " " + nameL, bMon + "/" + bDay + "/" + bYear, Integer.valueOf(weight), Double.valueOf(height) })); } } catch (java.io.EOFException eof) { dis.close(); } return; } catch (FileNotFoundException fnfe) { System.err.println("File " + datFile.getName() + " does not exist. Exiting."); System.exit(2); } catch (IOException ioe) { System.err.println("Some IO error."); ioe.printStackTrace(); } } }
BaseballB.java coding here:
import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.Node; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.Label; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.FlowPane; import javafx.scene.layout.VBox; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; import javafx.stage.Stage; import javafx.stage.WindowEvent;
public class BaseballB extends javafx.application.Application implements javafx.event.EventHandler
private boolean errorFlag = false; private String errorItem = ""; public static void main(String[] args) { launch(args); } public void start(Stage _stage) { stage = _stage; stage.setTitle("Baseball - P. Lutz"); stage.setOnCloseRequest(new javafx.event.EventHandler() { public void handle(WindowEvent evt) { System.exit(0); } }); VBox root = new VBox(8.0D);
tfFileName.setPrefColumnCount(20); tfRecordsIn.setPrefColumnCount(5); tfRecordsOut.setPrefColumnCount(5); taData.setPrefHeight(500.0D);
FlowPane fpRow1 = new FlowPane(8.0D, 8.0D); fpRow1.getChildren().addAll(new Node[] { new Label("File: "), tfFileName, btnOpen }); root.getChildren().add(fpRow1);
FlowPane fpRow2 = new FlowPane(8.0D, 8.0D); fpRow2.getChildren().addAll(new Node[] { new Label("Records In: "), tfRecordsIn, new Label("Records Out: "), tfRecordsOut }); root.getChildren().add(fpRow2);
root.getChildren().add(taData);
btnOpen.setOnAction(this); taData.setFont(javafx.scene.text.Font.font("MONOSPACED", 12.0D)); tfFileName.setDisable(true); scene = new javafx.scene.Scene(root, 375.0D, 400.0D); stage.setScene(scene); stage.show(); }
public void handle(ActionEvent ae) { FileChooser chooser = new FileChooser(); chooser.setInitialDirectory(new File(".")); chooser.setTitle("Select CSV file"); chooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter[] { new FileChooser.ExtensionFilter("CSV files", new String[] { "*.csv" }), new FileChooser.ExtensionFilter("All Files", new String[] { "*.*" }) });
File csvFile = chooser.showOpenDialog(stage); if (csvFile == null) { return; } tfFileName.setText(csvFile.getName());
File datFile = null; int index = csvFile.getName().lastIndexOf('.'); if ((index > 0) && (index <= csvFile.getName().length() - 2)) { datFile = new File(csvFile.getName().substring(0, index) + ".dat"); } taData.setText(""); BaseballB.TwoCounts results = convertCSVtoDAT(csvFile, datFile);
tfRecordsIn.setText("" + results.getRecordsIn()); tfRecordsOut.setText("" + results.getRecordsOut());
readDat(datFile); } class TwoCounts { private int recordsIn; private int recordsOut; public TwoCounts(int in, int out) { recordsIn = in;recordsOut = out; } public int getRecordsIn() { return recordsIn; } public int getRecordsOut() { return recordsOut; } }
private BaseballB.TwoCounts convertCSVtoDAT(File csvFile, File datFile) { DataOutputStream dos = null; BufferedReader br = null;
int inCount = 0; int outCount = 0; String errorMsg = ""; String errorItem = "???";
try { br = new BufferedReader(new java.io.FileReader(csvFile));
dos = new DataOutputStream(new java.io.BufferedOutputStream(new java.io.FileOutputStream(datFile)));
br.readLine(); inCount++; String line; while ((line = br.readLine()) != null) { inCount++; errorMsg = "Error found in: " + line + " "; errorFlag = false; errorItem = ""; if (line.trim().length() != 0) {
String[] ary = line.split(",");
if (ary.length != 7) { errorFlag = true; taData.appendText(errorMsg + "Not enough fields in the record. ");
} else { String nameF = ary[0].trim(); String nameL = ary[1].trim(); int bDay = intCvt(ary[2], "Birth day"); int bMon = intCvt(ary[3], "Birth month"); int bYear = intCvt(ary[4], "Birth year"); int weight = intCvt(ary[5], "Weight"); double height = dblCvt(ary[6], "Height");
if (errorFlag) { taData.appendText(errorMsg + "Offending data: " + errorItem + " ");
} else { dos.writeUTF(nameF); dos.writeUTF(nameL); dos.writeInt(bDay); dos.writeInt(bMon); dos.writeInt(bYear); dos.writeInt(weight); dos.writeDouble(height); outCount++; } } } }
dos.flush(); dos.close(); br.close(); return new BaseballB.TwoCounts(inCount, outCount); } catch (FileNotFoundException fnfe) { Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR, "File " + csvFile.getName() + " does not exist. Exiting.", new ButtonType[0]); alert.setHeaderText("No File"); alert.showAndWait(); System.exit(2); } catch (IOException ioe) { Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR, "" + ioe, new ButtonType[0]); alert.setHeaderText("IO Exception"); alert.showAndWait(); System.exit(3); } return new BaseballB.TwoCounts(0, 0); } private void readDat(File datFile) { try { DataInputStream dis = new DataInputStream(new java.io.BufferedInputStream(new java.io.FileInputStream(datFile)));
taData.appendText(String.format(" %-20s %10s %7s %7s ", new Object[] { "First & Last name", "Birthdate", "Weight", "Height" })); try { for (;;) { String nameF = dis.readUTF(); String nameL = dis.readUTF(); int bDay = dis.readInt(); int bMon = dis.readInt(); int bYear = dis.readInt(); int weight = dis.readInt(); double height = dis.readDouble(); taData.appendText(String.format("%-20s %10s %7s %7s ", new Object[] { nameF + " " + nameL, bMon + "/" + bDay + "/" + bYear, Integer.valueOf(weight), Double.valueOf(height) })); } } catch (java.io.EOFException eof) { dis.close(); }
return; } catch (FileNotFoundException fnfe) { System.err.println("File " + datFile.getName() + " does not exist. Exiting."); System.exit(2); } catch (IOException ioe) { System.err.println("Some IO error."); ioe.printStackTrace(); } }
private int intCvt(String item, String errTxt) { try { return Integer.parseInt(item); } catch (NumberFormatException nfe) { if (errorFlag) { errorItem += ", "; } errorItem += errTxt; errorFlag = true; } return -1; }
private double dblCvt(String item, String errTxt) { try { return Double.parseDouble(item); } catch (NumberFormatException nfe) { if (errorFlag) { errorItem += ", "; } errorItem += errTxt; errorFlag = true; } return -1.0D; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
