devxlogo

February 26, 2020

Retrieving a file from a jar file

JAR file in Java is a compressed format and is used for packaging of the deliverables. At times, you may want to manipulate this file.Below example indicates a scenario for the same. import java.util.jar.*;import java.io.*; public class RetrievingJarEntry{   public static void main(String args[])   {      RetrievingJarEntry retrievingJarEntry = new RetrievingJarEntry();      retrievingJarEntry.proceed();   }      private void proceed()   {      String sourceJarFile = “files/contacts.jar”;      String sourceFile = “2.txt”;      String destFile = “files/new2.txt”;      try{                  JarFile jarFile = new JarFile(sourceJarFile);         JarEntry jarEntry = jarFile.getJarEntry(sourceFile);         System.out.println(“Found entry: ” + jarEntry);         if ( jarEntry != null)         {            //Getting the jarEntry into the inputStream            InputStream inputStream = jarFile.getInputStream(jarEntry);             //Creating a output stream to a new file of our choice            FileOutputStream fileOutputStream = new java.io.FileOutputStream(destFile);            System.out.println(“Attempting to create file: ” + destFile);            while (inputStream.available()  0)             {                 fileOutputStream.write(inputStream.read());            }            System.out.println(“Created file: ” + destFile);            fileOutputStream.close();            inputStream.close();         }      }catch(IOException ioe)      {         System.out.println(“Exception: ” + ioe);      }   }} /* Expected output: [root@mypc]# java RetrievingJarEntryFound entry: 2.txtAttempting to create file: files/new2.txtCreated file: files/new2.txt */ //Please note: You have to create a folder with name files and a jar file contacts.jar which has files 1.txt, 2.txt and 3.txt

Navigating an enum

Enums are predefined place holders in Java. Knowing the contents of an enum will be handy in many instancesLet us look at how to navigate the elements of an enum public class NavigatingAnEnum{   public static void main(String args[])   {      NavigatingAnEnum navigatingAnEnum = new NavigatingAnEnum();      navigatingAnEnum.proceed();   }      enum Criteria {      LOW,      MEDIUM,      HIGH   }      private void proceed()   {      System.out.println(“Elements of the enum Criteria…”);      for (Criteria criteria : Criteria.values()) {         System.out.println(criteria);      }   }} /* Expected output: [root@mypc]# java NavigatingAnEnumElements of the enum Criteria…LOWMEDIUMHIGH */

Understandng java.net.PasswordAuthentication

PasswordAuthentication holds the data that will be used by the Authenticator. The username and password are stored in the PasswordAuthentication object. The methods getUserName() and getPassword() are made available that return the userName and password respectively. import java.net.PasswordAuthentication; public class UnderstandingPasswordAuthentication{   public static void main(String args[])   {      UnderstandingPasswordAuthentication understandingPasswordAuthentication = new UnderstandingPasswordAuthentication();      understandingPasswordAuthentication.proceed();   }      private void proceed()   {      //Initializing the user name      String userName = “devUser”;      //Initializing the password – This is a char array since the PasswordAuthentication supports this argument      char[] password = {‘d’,’e’,’v’,’U’,’s’,’e’,’r’};            PasswordAuthentication passwordAuthentication = new PasswordAuthentication(userName, password);      System.out.println(“Details being retrieved from PasswordAuthentication object post initializing”);      System.out.println(“UserName: ” + passwordAuthentication.getUserName());      //The below getPassword actually returns the reference to the password as per the Java API documentation.      System.out.println(“Password: ” + passwordAuthentication.getPassword());      //You can get the password in normal string       System.out.println(“Password: ” + String.copyValueOf(passwordAuthentication.getPassword()));   }} /* Expected output: [root@mypc]# java UnderstandingPasswordAuthenticationDetails being retrieved from PasswordAuthentication object post initializingUserName: devUserPassword: [C@15db9742Password: devUser */

Understandng HashMap.getOrDefault() method

HashMap is a class which which facilitates storing data in the form a key value pair. One thing to note of HashMap is that this is not synchronized and has to be used with caution in multi threaded environment. We may find cases where the key is not present and we maybe trying to perform operations using the key. Following method will help us in using a default value when the key in question is not available in the avaialble set of data. import java.util.HashMap; public class UnderstandingHashmapGetOrDefault{   public static void main(String args[])   {      UnderstandingHashmapGetOrDefault understandingHashmapGetOrDefault = new UnderstandingHashmapGetOrDefault();      understandingHashmapGetOrDefault.proceed();   }      private void proceed()   {      HashMap hashMap = initHashMap();      int currencyId = 12;      System.out.println(“Value of currency ” + currencyId + ” is ” + hashMap.getOrDefault(currencyId, “Unknown”));      currencyId = 100;      System.out.println(“Value of currency ” + currencyId + ” is ” + hashMap.getOrDefault(currencyId, “Unknown”));   }    private HashMap initHashMap() {      //HashMap declaration with 2 arguments (Integer and String)      HashMap hashMapCurrency = new HashMap();      //Adding predefined contents to the HashMap      hashMapCurrency.put(10, “Ten Dollars”);      hashMapCurrency.put(20, “Twenty Dollars”);      hashMapCurrency.put(50, “Fifty Dollars”);      hashMapCurrency.put(100, “Hundred Dollars”);      hashMapCurrency.put(200, “Two Hundred Dollars”);      return hashMapCurrency;   }   } /* Expected output: [root@mypc]# java UnderstandingHashmapGetOrDefaultValue of currency 12 is UnknownValue of currency 100 is Hundred Dollars */

Understandng toExactInt method in java.lang.Math package

java.lang.Math has numerous methods and our interest here is toIntExact() method.Consider the following example public class MathExact{   public static void main(String args[])   {      MathExact mathExact = new MathExact();      mathExact.proceed();   }      private void proceed()   {      long l = 100000000;      int i = (int) l;       System.out.println(“i: ” + i);            System.out.println(“Math.toIntExact(“+l+”);: ” + Math.toIntExact(l));   }} /* Expected output: [root@mypc]# java MathExacti: 100000000Math.toIntExact(100000000);: 100000000 */

Get the First Day of the Current Month

To get the first date of the current month, you could a query similar to the following: SELECT CONVERT(VARCHAR(25),DATEADD(DAY,-(DAY(GETDATE())) +1, GETDATE()), 105) Day1;