Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Thursday, April 23, 2020

Recursively looping into directories and subdirectories to get files that matching with pattern


  1. import java.io.File;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.regex.*;
  5. public class TechFact555FileMatching {
  6.   // Pattern to match with file name
  7.   public static final String FILE_PATTERN = "[a-zA-Z0-9]{6}";
  8.  
  9.   public static void main(String[] args) {
  10.     List<File> resultFiles = new ArrayList<>();
  11.     TechFact555FileMatching fileMatching = new TechFact555FileMatching();
  12.     
  13.     // Specify parent folder to fetch files
  14.     fileMatching.listFiles(new File("E:/folder"), resultFiles);
  15.    
  16.     for (File resultFile : resultFiles) {
  17.       System.out.print(resultFile.getName());
  18.     }
  19.   }
  20.  
  21.   // Recursively looping into folders to get Files
  22.   void listFiles(File directory, List<File> filesList) {
  23.     File[] filesAndFoldersList = directory.listFiles();
  24.     if (filesAndFoldersList != null) {
  25.       for (File fileOrFolder : filesAndFoldersList) {
  26.         if (fileOrFolder.isDirectory()) {
  27.           listFiles(fileOrFolder, filesList);
  28.         } else if (fileOrFolder.isFile() && Pattern.matches(FILE_PATTERN, fileOrFolder.getName())) {
  29.           filesList.add(fileOrFolder);
  30.         }
  31.       }
  32.     }
  33.   }
  34. }

Pass the Directory to fetch files as first parameter and list of files to add the pattern matching pattern as second parameter into listFiles function.

Java program to handle arithmetic [Calculator] with Exception using Scanner


  1. import java.util.Scanner;
  2. import java.io.*;

  3. public class TechFact555Calculator {
  4.     public static void main(String[] args) {
  5.         Scanner reader = new Scanner(System.in);
  6.         System.out.print("Enter two numbers: ");
  7.         
  8.         // nextDouble() reads the next double from the keyboard
  9.         double first = reader.nextDouble();
  10.         double second = reader.nextDouble();
  11.         System.out.print("Enter an operator (+, -, *, /): ");

  12.         char operator = reader.next().charAt(0);
  13.         double result;
  14.         try {
  15.             switch(operator){

  16.             case '+':
  17.                 result = first + second;
  18.                 break;

  19.             case '-':
  20.                 result = first - second;
  21.                 break;

  22.             case '*':
  23.                 result = first * second;
  24.                 break;

  25.             case '/':
  26.                 result = first / second;
  27.                 break;

  28.             // operator doesn't match any case constant (+, -, *, /)
  29.             default:
  30.                 System.out.printf("Error! operator is not correct");
  31.                 return;
  32.             }
  33.             System.out.printf("%.1f %c %.1f = %.1f", first, operator, second, result);
  34.         } catch(Exception e) {
  35.             System.out.print("Exception occurred " + e);
  36.         }
  37.     }
  38. }

Get token value from request header in java

  1. public class TechFact555 {
  2.  public String getHeader(HttpServletRequest request) {
  3.    String token = request.getHeader("header-key");
  4.    // Validate token string
  5.     return token;
  6.   }
  7. }

To get value in request, use HttpServletRequest object with exact key.

  • NOTE: Header key is case-sensitive.