Aprire file su pc da Java

di il
9 risposte

Aprire file su pc da Java

Salve a tutti
Sto cercando di creare una piccola presentazione: vorrei permettere a java di aprire un file presente sul pc, tramite magari un ciclo if.
Mi spiego: vorrei creare un piccolo programma da cui, se in input inserisci 1 ti apre un file, se inserisci 2 te ne apre un altro e cosi' via: e' possibile? Come?

9 Risposte

  • Re: Aprire file su pc da Java

    La domanda sorge spontanea: su quale LIBRO stai studiando?

    In QUALUNQUE buon libro c'e' il capitolo relativo al' Input/Output
  • Re: Aprire file su pc da Java

    superlevel ha scritto:


    vorrei permettere a java di aprire un file presente sul pc
    Precisa innanzitutto cosa intendi tu per "aprire un file" (ci sono varie interpretazioni ...).
    Vuol dire lanciare l'applicazione che è "registrata" nel sistema per gestire una certa tipologia/estensione di file? Es. documento.pdf ---> lanciare Acrobat Reader (se è questo quello predefinito per i pdf) per aprire documento.pdf ?
  • Re: Aprire file su pc da Java

    andbin ha scritto:


    Precisa innanzitutto cosa intendi tu per "aprire un file" (ci sono varie interpretazioni ...).
    Vuol dire lanciare l'applicazione che è "registrata" nel sistema per gestire una certa tipologia/estensione di file? Es. documento.pdf ---> lanciare Acrobat Reader (se è questo quello predefinito per i pdf) per aprire documento.pdf ?
    Vorrei lanciare esattamente un pdf aprendo acrobat reader..

    migliorabile ha scritto:


    La domanda sorge spontanea: su quale LIBRO stai studiando?

    In QUALUNQUE buon libro c'e' il capitolo relativo al' Input/Output
    Sto studiando dal Manuale di Java 7 di Claudio De Sio e sto seguendo la playlist del corso base del prof fcamuso su youtube.
  • Re: Aprire file su pc da Java

    Allora la cosa e' ben piu' incasinata.

    fondamentalmente NON DEVI APRIRE un file,
    MA
    DEVI mandare in esecuzione un processo esterno che apre il file .pdf.
    La cosa e' anche piu' complicata se vuoi mandare in esecuzione l'applicazione predefinita in Windows per il file con estensione ".pdf".
  • Re: Aprire file su pc da Java

    superlevel ha scritto:


    Vorrei lanciare esattamente un pdf aprendo acrobat reader..
    Da Java 6 esiste java.awt.Desktop, fatto proprio per questi (e altri) compiti.
    File file = new File("blablabla\\documento.pdf");
    Desktop.getDesktop().open(file);
  • Re: Aprire file su pc da Java

    andbin ha scritto:


    superlevel ha scritto:


    Vorrei lanciare esattamente un pdf aprendo acrobat reader..
    Da Java 6 esiste java.awt.Desktop, fatto proprio per questi (e altri) compiti.
    File file = new File("blablabla\\documento.pdf");
    Desktop.getDesktop().open(file);
    Ti ringrazio tantissimo!!
    Ho provato a fare un test cercando di aprire un file word, e funziona alla grande per ora! C`e` qualche punto in cui si puo` migliorare nettamente il code?
    So gia` che manca un catch per gestire l`errore in caso venga inserita a tastiera una lettera..
    import java.util.*;
    import java.awt.Desktop;
    import java.io.*;
    
    
    public class prova02 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		
    	int test = 0;
    	boolean err = false;
    	Scanner sc = new Scanner(System.in);
    		do
    	{
    			try 	
    			{
    			
    								System.out.println("inserisci 1 se vuoi aprire il C.V -> ");
    								test = sc.nextInt();
    							
    			if (test==1)
    					{
    			        File file = new File("C:\\Users\\Claudio\\Desktop\\pincopalla.doc");				
    		        	Desktop.getDesktop().open(file);
    		        	err=true;
    					}
    			else {
    				System.out.println("devi inserire 1!");
    				err=false;
    			}
    			}
    			
    			catch (IOException e)
    			{ 
    				System.out.println("hai sbagliato!");
    				err=true;
    			}
    			catch (NumberFormatException e)
    			{
    				System.out.println("hai sbagliato!");
    				err=true;
    			
    			}
    		
    			}
    		while (test!=1);
    		{
    			err=true;
    		
    		}
    
    	}
    	}
    
    

    //modifica:
    catch(InputMismatchException e)
    			{
    				System.out.println("hai sbagliato!");
    				err=true;
    			}
    ho inserito questo catch per evitare di andare in errore e gestire i problemi che danno i numeri con la virgola e le lettere, ma mi va in loop dopo, dove sbaglio?
  • Re: Aprire file su pc da Java

    superlevel ha scritto:


    catch(InputMismatchException e)
    			{
    				System.out.println("hai sbagliato!");
    				err=true;
    			}
    ho inserito questo catch per evitare di andare in errore e gestire i problemi che danno i numeri con la virgola e le lettere, ma mi va in loop dopo, dove sbaglio?
    E' uno dei soliti "cavilli" di Scanner. Se al nextInt() metti qualcosa che non è un int, ottieni InputMismatchException ma quel token NON viene rimosso, rimane "in canna" perché si potrebbe voler gestirlo in altro modo. E al prossimo nextInt() ... ripete la stessa cosa ....
    E' sufficiente nel catch "buttarlo via" facendo un sc.next() (senza usare il valore restituito a meno che serva per logging, informazione o altro).
  • Re: Aprire file su pc da Java

    andbin ha scritto:


    superlevel ha scritto:


    catch(InputMismatchException e)
    			{
    				System.out.println("hai sbagliato!");
    				err=true;
    			}
    ho inserito questo catch per evitare di andare in errore e gestire i problemi che danno i numeri con la virgola e le lettere, ma mi va in loop dopo, dove sbaglio?
    E' uno dei soliti "cavilli" di Scanner. Se al nextInt() metti qualcosa che non è un int, ottieni InputMismatchException ma quel token NON viene rimosso, rimane "in canna" perché si potrebbe voler gestirlo in altro modo. E al prossimo nextInt() ... ripete la stessa cosa ....
    E' sufficiente nel catch "buttarlo via" facendo un sc.next() (senza usare il valore restituito a meno che serva per logging, informazione o altro).
    Ho risolto esattamente come mi hai detto! Grazie mille!

    Un`ultima domanda.. questa parte di codice funziona solo su file che si trovano sul desktop posso inserire il percorso del file ovunque si trovi e funziona uguale?
     File file = new File("blablabla");				
    		        	Desktop.getDesktop().open(file);
  • Re: Aprire file su pc da Java

    superlevel ha scritto:


    Un`ultima domanda.. questa parte di codice funziona solo su file che si trovano sul desktop posso inserire il percorso del file ovunque si trovi e funziona uguale?
    java.io.File può rappresentare qualunque file/directory sul file-system, usando un percorso relativo o assoluto.
Devi accedere o registrarti per scrivere nel forum
9 risposte