Thank you for the additional info - point taken about the finally
clause and setting the File to null.
Kristoz
On Aug 30, 11:39 am, miga <[EMAIL PROTECTED]> wrote:
> On Aug 30, 4:36 pm, Kristoz <[EMAIL PROTECTED]> wrote:
>
>
>
> > The given source file does not include any try catch for the file
> > operations.
> > Should the input file data be something like:
>
> > // set up new properties object
> > // from file "myProperties.txt"
> > String fileName = "myProperties.txt";
> > // retrieve system properties
> > Properties p = new Properties(System.getProperties());
> > // attempt to load file contents
> > try {
> > FileInputStream propFile = new
> > FileInputStream(fileName);
> > p.load(propFile);
> > } catch (FileNotFoundException fnfe) {
> > System.out.println(fileName + " not found");
> > } catch (IOException ioe) {
> > System.out.println("error accessing " + fileName);
> > }
>
> Even if there is a throws Exception in the main method, it is better
> to actually catch the exceptions.
> In this case, your proposal is almost OK, as you should close the
> input stream in a finally clause in case it has been opened, and
> nevertheless also have a throws IOException clause precisely for the
> close statement. So, that gives the following program:
>
> Note, I've used logs here, but you may use a mere printing. Note also
> the refactoring, propFile should be initialized to null before the
> try, so that it exists in all cases, and this is the wole block which
> uses propFile which should be in the try block to ensure any failure
> will not be propagated elsewhere.
>
> package systempropertiesproject;
>
> import java.io.FileInputStream;
> import java.io.FileNotFoundException;
> import java.io.IOException;
> import java.util.Properties;
> import java.util.logging.Level;
> import java.util.logging.Logger;
>
> /**
> *
> * @author miga
> */
> public class Main {
>
> /**
> * @param args the command line arguments
> */
> public static void main(String[] args) throws IOException {
> // set up new properties object
> // from file "myProperties.txt"
> FileInputStream propFile = null;
> Properties p = new Properties(System.getProperties());
> try {
> propFile = new FileInputStream("myProperties.txt");
> p.load(propFile);
> // set a property through setProperty() method
> p.setProperty("myKey1", "myValue1");
> // set the system properties
> System.setProperties(p);
> // display new properties
> System.getProperties().list(System.out);
> } catch (FileNotFoundException ex) {
>
> Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
> } catch (IOException ex) {
>
> Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
> } finally {
> if (propFile != null) {
> propFile.close();
> }
> }
> }
>
>
>
> }- Hide quoted text -
>
> - Show quoted text -- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en
-~----------~----~----~----~------~----~------~--~---