add support for loading and printing out matrices from files
This commit is contained in:
		
							parent
							
								
									ca37003f32
								
							
						
					
					
						commit
						00fba12eb2
					
				@ -59,8 +59,13 @@ public class Main {
 | 
				
			|||||||
            if (allow_networking) {
 | 
					            if (allow_networking) {
 | 
				
			||||||
                System.err.println("[WARN] File is missing, downloading random matrix from the server");
 | 
					                System.err.println("[WARN] File is missing, downloading random matrix from the server");
 | 
				
			||||||
                fetchResource("http://lab2.kpi.dev:16554/matrix.py", matrix_file_name);
 | 
					                fetchResource("http://lab2.kpi.dev:16554/matrix.py", matrix_file_name);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                System.err.println("[WARN] File is missing; networking is disabled, not recovering");
 | 
				
			||||||
 | 
					                System.exit(1);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        int[][] matrix = loadMatrixFromFile(matrix_file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,4 +111,45 @@ public class Main {
 | 
				
			|||||||
            System.exit(1);
 | 
					            System.exit(1);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static int[][] loadMatrixFromFile(File matrix_file) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            Scanner matrix_file_reader = new Scanner(matrix_file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ArrayList<String> raw_matrix_lines = new ArrayList<String>();
 | 
				
			||||||
 | 
					            while (matrix_file_reader.hasNextLine()) {
 | 
				
			||||||
 | 
					                raw_matrix_lines.add(matrix_file_reader.nextLine());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            ArrayList<String[]> baked_matrix_lines = new ArrayList<String[]>();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            for (String s : raw_matrix_lines) {
 | 
				
			||||||
 | 
					                baked_matrix_lines.add(s.split(" "));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            int ref_length = baked_matrix_lines.get(0).length;
 | 
				
			||||||
 | 
					            int[][] baked_matrix = new int[baked_matrix_lines.size()][ref_length];
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            for (int i = 0; i < baked_matrix_lines.size(); i++) {
 | 
				
			||||||
 | 
					            //for (String[] sa : baked_matrix_lines) {
 | 
				
			||||||
 | 
					                if (baked_matrix_lines.get(i).length != ref_length) {
 | 
				
			||||||
 | 
					                    System.err.println("[ERROR] Matrix lines have different length! Assuming the matrix was corrupted");
 | 
				
			||||||
 | 
					                    System.exit(2);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                for (int j = 0; j < baked_matrix_lines.get(i).length; j++) {
 | 
				
			||||||
 | 
					                    System.out.print(baked_matrix_lines.get(i)[j] + " ");
 | 
				
			||||||
 | 
					                    baked_matrix[i][j] = Integer.parseInt(baked_matrix_lines.get(i)[j]);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                System.out.print("\n");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return baked_matrix;
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            System.err.println("[ERROR] Failed to read matrix from file " + matrix_file.getName());
 | 
				
			||||||
 | 
					            System.exit(1);
 | 
				
			||||||
 | 
					            return new int[1][1];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user