I get this totally weird error when trying to read some text from a file:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at GradAndUndergrad.actionPerformed(GradAndUndergrad.java:81)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
This is my code:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class StudentRead extends JFrame implements ActionListener {
Container con = getContentPane();
JButton grad = new JButton("Grad");
JButton undergrad = new JButton("Undergrad");
JLabel lblID = new JLabel("Student ID: ");
JLabel lblFName = new JLabel("First Name: ");
JLabel lblLName = new JLabel("Last Name: ");
JTextField txtID = new JTextField(10);
JTextField txtFName = new JTextField(10);
JTextField txtLName = new JTextField(10);
File gradFile = new File("Graduate.txt");
File undergradFile = new File("Undergraduate.txt");
DataInputStream inGrad;
DataInputStream inUndergrad;
public StudentRead() {
super("Read File");
con.setLayout(new FlowLayout());
con.add(lblID);
con.add(txtID);
con.add(lblFName);
con.add(txtFName);
con.add(lblLName);
con.add(txtLName);
con.add(grad);
con.add(undergrad);
grad.addActionListener(this);
undergrad.addActionListener(this);
try {
inGrad = new DataInputStream(new FileInputStream(gradFile));
}
catch(FileNotFoundException z) {
System.out.println("File Not Found.");
}
try {
inUndergrad = new DataInputStream(new FileInputStream(undergradFile));
}
catch(FileNotFoundException z) {
System.out.println("File Not Found");
}
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == grad) {
try {
int txtID1 = inGrad.readInt();
String txtFName1 = inGrad.readUTF();
String txtLName1 = inGrad.readUTF();
txtFName.setText(txtFName1);
txtLName.setText(txtLName1);
txtID.setText(String.valueOf(txtID1));
}
catch(IOException f) {
System.out.println("Error");
}
}
else {
try {
int txtID1 = inUndergrad.readInt();
String txtFName1 = inUndergrad.readUTF();
String txtLName1 = inUndergrad.readUTF();
txtFName.setText(txtFName1);
txtLName.setText(txtLName1);
txtID.setText(String.valueOf(txtID1));
}
catch(IOException f) {
System.out.println("Error");
}
}
}
public static void main(String[] args) {
GradAndUndergrad g1 = new GradAndUndergrad();
g1.setVisible(true);
g1.setSize(200,400);
g1.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
This happens when i push the "Grad" or "Undergrad" button, which technically should then read the information from the appropriate file. Both files are in the directory, and do have information in them, they were created by a modified version of this :
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GradAndUndergrad extends JFrame implements ActionListener {
Container con = getContentPane();
JButton grad = new JButton("Grad");
JButton undergrad = new JButton("Undergrad");
JLabel lblID = new JLabel("Student ID: ");
JLabel lblFName = new JLabel("First Name: ");
JLabel lblLName = new JLabel("Last Name: ");
JTextField txtID = new JTextField(10);
JTextField txtFName = new JTextField(10);
JTextField txtLName = new JTextField(10);
File gradFile = new File("Graduate.txt");
File undergradFile = new File("Undergraduate.txt");
DataOutputStream outGrad;
DataOutputStream outUndergrad;
public GradAndUndergrad() {
super("Create a Student");
con.setLayout(new FlowLayout());
con.add(lblID);
con.add(txtID);
con.add(lblFName);
con.add(txtFName);
con.add(lblLName);
con.add(txtLName);
con.add(grad);
con.add(undergrad);
grad.addActionListener(this);
undergrad.addActionListener(this);
try {
outGrad = new DataOutputStream(new FileOutputStream(gradFile));
}
catch(FileNotFoundException z) {
System.out.println("File not found");
}
try {
outUndergrad = new DataOutputStream(new FileOutputStream(undergradFile));
}
catch(FileNotFoundException z) {
System.out.println("File not found");
}
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == grad) {
try {
int sID = Integer.parseInt(txtID.getText());
outGrad.writeUTF(txtFName.getText());
outGrad.writeUTF(txtLName.getText());
}
catch(IOException f) {
System.out.println("Error");
}
}
else {
try {
int sID = Integer.parseInt(txtID.getText());
outUndergrad.writeInt(sID);
outUndergrad.writeUTF(txtFName.getText());
outUndergrad.writeUTF(txtLName.getText());
}
catch(IOException f) {
System.out.println("Error");
}
}
}
public static void main(String[] args) {
GradAndUndergrad g1 = new GradAndUndergrad();
g1.setVisible(true);
g1.setSize(200,400);
g1.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
So yep, i'm clueless to why this is happening