Commit 38070126 authored by Daniellia Sumigar's avatar Daniellia Sumigar
Browse files

Delete AcceptFile.java

parent 0a278429
Loading
Loading
Loading
Loading

AcceptFile.java

deleted100644 → 0
+0 −73
Original line number Diff line number Diff line
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/**
* AcceptFile class that reads a text file and identifies whether it is in the
* following format:
* 1) First two lines must contain exactly one integer (representing width & length)
* 2) There must be width * height more lines after
* 3) Each of these lines must have exactly 3 integers with values within 0 to 100 inclusive
* @param String fileName
* @return error messages if criterias are not met
*/

public class AcceptFile {
    public static void main(String[] args) {
        String fileName = "correctInput.txt"; // Replace with the name of text file to check
        
        // BufferedReader is used to parse through text file line by line
        try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
            // Read and check the first two lines to get the width and height
            String line = br.readLine();
            int width = Integer.parseInt(line.trim());
            line = br.readLine();
            int height = Integer.parseInt(line.trim());

            //to save the point in the file after reading width and height (line 3)
            br.mark(1000);

            if (width <= 0 || height <= 0) {
                System.out.println("Error: width and height must be positive integers.");
                return;

            }
            
            // Check that there are width * height more lines in the file
            int expectedNumLines = width * height;
            int currentNumLines = 0; // Counter to keep track number of lines
            while ((line = br.readLine()) != null) {
                currentNumLines += 1;
            }
            if (expectedNumLines != currentNumLines) {
                System.out.println("Error: Expected " + expectedNumLines + " lines, but found " + currentNumLines + " lines.");
                return;
            }
            
            // Check that each of the following lines has exactly 3 integers between 0 and 100
            br.reset(); // puts us back to line 3 and no longer need to skip first two lines

            while ((line = br.readLine()) != null) {
                String[] tokens = line.split("\\s+");
                if (tokens.length != 3) {
                    System.out.println("Error: Line \"" + line + "\" does not contain exactly 3 integers.");
                    return;
                }
                for (String token : tokens) {
                    int value = Integer.parseInt(token);
                    if (value < 0 || value > 100) {
                        System.out.println("Error: Value " + value + " is not between 0 and 100.");
                        return;
                    }
                }
            }
            
            // When text file meets all the requirements
            System.out.println("The file \"" + fileName + "\" meets all the requirements.");
        } catch (IOException e) {
            System.out.println("Error reading file \"" + fileName + "\": " + e.getMessage());
        } catch (NumberFormatException e) {
            System.out.println("Error parsing integer \"" +  "\": " + e.getMessage());
        }
    }
}