1
0
Эх сурвалжийг харах

fixed movie parsing in data reader

by adding handling for empty string and changing read mode
Phil 7 жил өмнө
parent
commit
b7716f40c4

+ 8 - 6
MovieDB/src/data/DataParser.java

@@ -11,7 +11,7 @@ public class DataParser {
 	
 	public DataParser() {
 		try {
-			in = new Scanner(new FileInputStream(new File("movieproject.db")));
+			in = new Scanner(new FileInputStream(new File("/home/phil/git/moviedb/MovieDB/movieproject.db")));
 		} catch (FileNotFoundException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
@@ -23,26 +23,28 @@ public class DataParser {
 		String msg;
 		DataBase db = DataBase.getInstance();
 		mode readmode = mode.NONE;
-		while(in.hasNext()) {
-			msg = in.next();
+		while(in.hasNextLine()) {
+			msg = in.nextLine();
 			if(msg.startsWith("New_Entity:")) {
+				System.out.println(msg.substring(11));
 				switch(msg.substring(11)) {
-				case "\"movie_id\",\"movie_title\",\"movie_plot\",\"genre_name\",\"movie_released\",\"movie_imdbVotes\",\"movie_imdbRating\"":
+				case " \"movie_id\",\"movie_title\",\"movie_plot\",\"genre_name\",\"movie_released\",\"movie_imdbVotes\",\"movie_imdbRating\"":
 					readmode = mode.MOVIE;
 					break;
 				default:
 					readmode = mode.NONE;
 				}
 			}else {
-				String[] data = msg.split(",");
+				String[] data = msg.split("\",\"");
 				switch(readmode) {
 				case MOVIE:
-					
+					System.out.println(msg);
 					Movie m = new Movie();
 					m.setId(Integer.valueOf(data[0].replaceAll("\"", "")));
 					m.setGenre(data[3].replaceAll("\"", ""));
 					m.setPlot(data[2].replaceAll("\"", ""));
 					m.setTitle(data[1].replaceAll("\"", ""));
+					if(!data[6].replaceAll("\"", "").equals(""))
 					m.setRating(Float.valueOf(data[6].replaceAll("\"", "")));
 					db.addMovie(m);
 					break;

+ 2 - 0
MovieDB/src/main/Main.java

@@ -27,7 +27,9 @@ public class Main {
 				case "--limit":
 					break;
 				case "--printdb":
+					System.out.println("printing db");
 					new DataParser();
+					
 					DataBase.getInstance().printMovies();
 					break;
 				default: