I am attempting to read a .dat file using Java in TextPad. The .dat file has multiple lines of code but each line has separate pieces of information that I need for different methods in my main method and object classes. How do I separate the information provided in the file and input the separate pieces into any of my classes?
I know how to read basic input from a .txt file but it is not working with the .dat file. I do not know how to separate data that does not have commas, and I am not allowed to change the data in the .dat file.
When viewing the .dat file in TextPad it shows up as standard characters, not as binary. The code I am trying to read is below:
1001Intro. to CompSci 4ALBERT, PETER A. Comp Info System A
1001Intro. to CompSci 4ALLENSON, SHEILA M. Comp Info System B
1001Intro. to CompSci 4ANDERSON, ALENE T. Comp Info System A
1001Intro. to CompSci 4HENDRIX, JAMES D. Lib Arts - MIS C
1001Intro. to CompSci 4CANNON, FREDDY B.B. Comp Info System B
1002Visual Basic 3ALBERT, PETER A. Comp Info System C
1002Visual Basic 3ALLENSON, SHEILA M. Comp Info System D
1002Visual Basic 3ANDERSON, ALENE T. Comp Info System A
1002Visual Basic 3HENDRIX, JAMES D. Lib Arts - MIS B
1002Visual Basic 3CANNON, FREDDY B.B. Comp Info System B
1003Cisco Networking I 4ALBERT, PETER A. Comp Info System C
1003Cisco Networking I 4ALLENSON, SHEILA M. Comp Info System A
1003Cisco Networking I 4ANDERSON, ALENE T. Comp Info System A
1003Cisco Networking I 4HENDRIX, JAMES D. Lib Arts - MIS D
1004Cisco Networking III3ALBERT, PETER A. Comp Info System B
1004Cisco Networking III3ALLENSON, SHEILA M. Comp Info System C
1004Cisco Networking III3ANDERSON, ALENE T. Comp Info System A
1004Cisco Networking III3CANNON, FREDDY B.B. Comp Info System B
1004Cisco Networking III3HELLER, HELEN H. Lib Arts - MIS A
1004Cisco Networking III3HENDRIX, JAMES D. Lib Arts - MIS F
The individual pieces of information are labeled below using line 1 from above as an example:
CourseID CourseName Credits StudentName Major Grade
1001Intro. to CompSci 4ALBERT, PETER A. Comp Info System A
解决方案
Note: This answer assumes that each column is a definite length (4-digit course ID, 20-character course name, 1-digit credits, 20-character student name, 20-character major, 1-digit grade)
First, you'll want to get a list of every line in the file.
String[] lines = Files.readAllLines(new File("myfile.dat").toPath()).toArray(new String[0]);
Next, process each line by using the substring() method:
for(String line: lines) {
int courseId = Integer.parseInt(line.substring(0, 4));
String studentName = line.substring(4, 24).trim();
// etc...
}
The trim() function removes trailing whitespace.