View Full Version : [java] log4j e altra domanda
diegof83
12-06-2006, 10:56
ciao a tutti ho due domande da porvi:
devo creare un file solo che il path me lo deve dare l'utente,come posso fare x farmi dare il path in maniera tale da creare in questa cartella il file?
seconda domanda: devo utilizzare il log4j, solo che non so di cosa tratti,qualcuno mi può dare una mano???
grazie.
ciao ciao
ciao a tutti ho due domande da porvi:
devo creare un file solo che il path me lo deve dare l'utente,come posso fare x farmi dare il path in maniera tale da creare in questa cartella il file?Ci sono sicuramente molti modi per fare questo. Però dovresti specificare meglio come e quando vuoi che l'utente ti fornisca questa informazione. Deve essere una parametrazione fissa o quasi?? Deve essere specificata in modo diverso ad ogni avvio della tua applicazione??
diegof83
12-06-2006, 11:03
lui mi da un path fisso quindi non lo cambia ogni volta, e quindi in quella cartella io devo creare il file.
Ma è un'applicazione grafica? testuale? web?
Comunque una volta che hai l'input in una stringa concatenala coin il nome del file e poi lo puoi creare.
per quanto riguarda log4j è un framework di logging mantenuto dalla fondazione apache (basta scrivere log4j su google...)
diegof83
12-06-2006, 11:11
è un semplice programma che riceve due stringhe in ingresso e se il file non esiste viene generato, altrimenti le due stringhe vengono concatenate al file già esistente.
Puoi usare i file di "properties". Crei un file es. miaapp.properties con dentro:
path = xxx...
poi lo carichi con:
Properties props = new Properties ();
try {
props.load (new FileInputStream ("miaapp.properties"));
String path = props.getProperty ("path");
} catch (IOException e) {
/* .... */
}
diegof83
12-06-2006, 12:00
import java.io.*;
public class bo
{
public static void main (String[] args)
{
Properties props = new Properties ();
try
{
props.load (new FileInputStream ("miaapp.properties"));
String path = props.getProperty ("path");
}
catch (IO.Exception e)
{
System.out.println("Ciao");
}
}
}
mi da 3 errori sulla riga rossa.
p.s. ho creato un file che contiene semplicemente
path = nome path
mi da 3 errori sulla riga rossa.import java.util.*;
diegof83
12-06-2006, 13:48
public static void inserisci (String c,char a)
{
{
char risp;
char coda;
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
//pw.println ();
//pw.println();
pw.println (c+" "+a);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
/*System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
while ((coda != 's') && (coda != 'n'))
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
}*/
//if (coda == 's')
{
try
{
BufferedWriter bw = new BufferedWriter (new FileWriter ("testa.txt", true));
if ((!c.equals ("")) && (c != null))
{
bw.write (c+" "+a);
bw.newLine();
bw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
/*else
{
//System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
while ((risp!='s')&& (risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}*/
}
}
}
}
class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}
come faccio ad incapsulare il pezzo di codice di prima in questo programma?
come faccio ad incapsulare il pezzo di codice di prima in questo programma?Puoi fare una cosa del genere:
import java.io.*;
import java.util.*;
public class MiaApplicazione
{
private String path;
public static void main (String[] args)
{
try
{
MiaApplicazione miaApp = new MiaApplicazione ();
miaApp.loadConfig ();
/*
...
chiama miaApp.inserisci (...);
...
*/
}
catch (Exception e)
{
e.printStackTrace ();
}
}
public void loadConfig ()
throws IOException
{
Properties props = new Properties ();
props.load (new FileInputStream ("miaapp.properties"));
path = props.getProperty ("path");
}
public void inserisci (String c, char a)
{
/* .... */
}
}
Ovviamente, completalo tu. ;)
diegof83
12-06-2006, 14:42
import java.io.*;
import java.util.*;
public class cop2
{
public static void main (String[] args)
{
String c;
char a;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
System.out.println ("dammi il carattere da inserire nel file");
a= SavitchIn.readChar();
File d = new File ("esolutions");
d.mkdir ();
miaApp.inserisci(c,a);
}
public class MiaApplicazione
{
private String path;
{
try
{
MiaApplicazione miaApp= new MiaApplicazione ();
miaApp.loadConfig ();
//miaApp.inserisci(c,a);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public void loadConfig ()
throws IOException
{
Properties props = new Properties ();
props.load (new FileInputStream ("miaapp.properties"));
String path = props.getProperty ("path");
}
public static void inserisci (String c,char a)
{
{
char risp;
char coda;
File f= new File ("esolutions/testa.txt");
if (!f.isFile())
{
try
{
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("esolutions/testa.txt"));
//pw.println ();
//pw.println();
pw.println (c+" "+a);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
/*System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
while ((coda != 's') && (coda != 'n'))
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
}*/
//if (coda == 's')
{
try
{
BufferedWriter bw = new BufferedWriter (new FileWriter ("esolutions/testa.txt", true));
if ((!c.equals ("")) && (c != null))
{
bw.write (c+" "+a);
bw.newLine();
bw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
/*else
{
//System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
while ((risp!='s')&& (risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("esolutions/testa.txt"));
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}*/
}
}
}
}
class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}
scusa se ti rompo nuovamente ma mi da 2 errori e infatto non sono sicuro sul come chiamare la funzione miaApp.inserisci. se non capisci qualche riga o qualche cosa chiedimi pure....
scusa se ti rompo nuovamente ma mi da 2 errori e infatto non sono sicuro sul come chiamare la funzione miaApp.inserisci. se non capisci qualche riga o qualche cosa chiedimi pure....Ma no ... ci sono troppi errori. Non puoi mettere un public class MiaApplicazione così a caso nel sorgente, il metodo inserisci è ancora static (non lo devi più mettere static), più altre piccole cose:
Ecco:
import java.io.*;
import java.util.*;
public class cop2
{
private String path;
public static void main (String[] args)
{
try
{
cop2 cop = new cop2 ();
cop.loadConfig ();
String c;
char a;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
System.out.println ("dammi il carattere da inserire nel file");
a= SavitchIn.readChar();
File d = new File ("esolutions");
d.mkdir ();
cop.inserisci (c,a);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
public void loadConfig ()
throws IOException
{
Properties props = new Properties ();
props.load (new FileInputStream ("miaapp.properties"));
String path = props.getProperty ("path");
}
public void inserisci (String c,char a)
{
/* .... */
}
}
/* .... */
diegof83
12-06-2006, 15:11
scusa un'ultima domanda: come faccio per ogni riga che scrivo nel file a inserire la data nel formato gg/mm/aaaa all'ora hh:mm?
scusa un'ultima domanda: come faccio per ogni riga che scrivo nel file a inserire la data nel formato gg/mm/aaaa all'ora hh:mm?Ecco:
import java.text.*;
import java.util.*;
....
DateFormat fmt = new SimpleDateFormat ("dd/MM/yyyy HH:mm");
String stringaData = fmt.format (new Date ());
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.