Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-07-2004, 09:34   #1
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
[JAVA] gestire il contenuto di un .txt

ciao

allora, per un progetto devo salvare dei record composti da tot voci in un file txt

ovviamente per riconoscere un record da un altro o un campo da un altro userò un contatore intero nel primo caso e delle stringhe nel secondo, almeno credo

quali classi di java mi consigliate di usare?
qualcosa che permetta di lavorare su un txt e di fare operazioni con il suo contenuto, magari che sia anche abbastanza potente da permettermi di scandire il file, leggere cercare insomma....qualcosa di adatto...

grazie!
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 09:40   #2
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 557
e se serializzi il contenuto dei record?? e poi salvi? la serializzazione consente di salvare su un file un "oggetto" java con i suoi metodi e le variabili (non static o transient)...
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 09:46   #3
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
Quote:
Originariamente inviato da Mazza2
e se serializzi il contenuto dei record?? e poi salvi? la serializzazione consente di salvare su un file un "oggetto" java con i suoi metodi e le variabili (non static o transient)...

non so cosa sia cmq il file txt deve contenere solo testo di questo genere (si tratta del sofware per la gestione di un distributore di CD musicali)

Record 1
Autore: xxx
Titolo: dgsud
Casa Discografica: dvusdgfla
Anno: 1234

Record 2
Autore: xxx
Titolo: dgsud
Casa Discografica: dvusdgfla
Anno: 1234

e ovviamente aandrà modificato a seconda dei CD disponibili con vari metodi addCD, removeCD ecc ecc
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 10:15   #4
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 557
se vuoi lasciare tutto in chiaro, per scrivere il file ti consiglio un PrintWriter che col metodo println("stringa") ti permette di scrivere una riga di testo ed andare a capo.


per rileggere poi il file usa un BufferedReader che col metodo String readLine() legge una riga di testo alla volta e la restituisce


chiramente entrambi sono nel package java.io
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 10:30   #5
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
abbiamo scoperto ora che la prof ha deto una classe scritta da lei GestioneFile....sembra buona ma non so se ha tutto quello che ci serve.....

se non va bene guarderò quella che mi hai detto

grazie mille
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 10:50   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
se hai voglia di fare le cose in maniera piu' elegante prevedi di salvare in XML le informazioni su file. Il tuo SW guadagnerà in flessibilità
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 11:33   #7
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
Quote:
Originariamente inviato da kingv
se hai voglia di fare le cose in maniera piu' elegante prevedi di salvare in XML le informazioni su file. Il tuo SW guadagnerà in flessibilità

uhm.....mi pare troppo...sul progetto c'è scritto che il file deve essere chiamato input.txt

non so se xml si faccia su un txt ma questo deve essere semplicemente un file di testo nromale.... non posso (e non saprei) fare le cose in grande
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 12:04   #8
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da thefrog

non so se xml si faccia su un txt ma questo deve essere semplicemente un file di testo nromale.... non posso (e non saprei) fare le cose in grande
un xml e' un normale file di testo che utilizza un altro file (lo schema o il dtd) per definire il formato.

se il tuo progetto non lo richiede lascia perdere, ma in futuro tieni conto che quando hai la necessità di salvare dei dati in formato non binario garantendo che siano trattabili con tool e linguaggi di programmazione differenti XML puo' essere una soluzione.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 13:26   #9
texerasmo
Senior Member
 
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
Cmq non c'è bisogno di dichiarare uno schema oppure una dtd è meglio.

questo codice che ti scrivo crea un file xml è semplice da adattare al tuo caso se vuoi.

per provarlo devi avere

settato...


set CLASSPATH=%CLASSTPATH%;c:\javaxml\lib\xerces.jar;c:\javaxml\lib\jdom.jar;

se ti mancano i jar me lo dici che te li mando

import java.io.*;
import java.util.*;

/*
IMPORTIAMO I PACKAGE NECESSARI PER
LAVORATE CON GLI XML
/**/
import org.jdom.*;
import org.jdom.output.XMLOutputter;

public class CreaXML
{
public CreaXML(String nomeFile)
{
try
{
writeFile(nomeFile);
}catch(Exception e)
{
System.err.println ("errore: "+e);
}
}

public void writeFile(String path) throws Exception
{
File fileTmp = new File(path);

/*
ISTANZIAMO UN OGGETTO Element
PASSANDOGLI LA STRINGA
CHE SARA' IL NOME DEL NOSTRO SUPERTAG
/**/
Element root = new Element("root");


/*
ISTANZIAMO UN OGGETTO Document
PASSANDOGLI COME PARAMETRO L'OGGETTO
ELEMENT PRECEDENTEMENTE ISTANZIATO
/**/
Document documento = new Document(root);

/*
AGGIUNGIAMO AL NOSTRO ELEMENT UN
ATTRIBUTO:
<root attributo=valore>
/**/
root = root.setAttribute( "attributo","valore");

/*
ISTANZIAMO ALTRI OGGETTI Element
PASSANDOGLI LE STRINGHE
CHE SARANNO I NOMI DEI NOSTRI TAG
/**/
Element form = new Element("form");
Element nome = new Element("nome");
Element titolo = new Element("titolo");
Element copyright = new Element("copyright");
Element autore = new Element("autore");
Element fonte = new Element("fonte");
Element note = new Element("note");
//Element tagsito = new Element("tagsito");
Element body = new Element("body");
Element titolo_body = new Element("titolo_body");
Element sommario = new Element("sommario");
Element testo = new Element("testo");
Element img = new Element("img");
/*
ASSEGNAMO DEI VALORI AI
TAG param-name E param-value:
<param-name>mio nome</param-name>
/**/
nome.addContent("nome valore form");
titolo.addContent("titolo valore form");
copyright.addContent("copyright valore form");
autore.addContent("autore valore form");
fonte.addContent("fonte valore form");
note.addContent("note valore form");
// tagsito.addContent("tagsito valore sito");
titolo_body.addContent("titolo_body valore body");
sommario.addContent("sommario valore body");
testo.addContent("testo valore body");
img.addContent("img valore body");


/*
AGGIUNGIAMO I TAG param-name E
Param-value AL TAG init-param
/**/

form.addContent(nome);
form.addContent(titolo);
form.addContent(copyright);
form.addContent(autore);
form.addContent(fonte);
form.addContent(note);
body.addContent(titolo_body);
body.addContent(sommario);
body.addContent(testo);
body.addContent(img);

/*
AGGIUNGIAMO IL TAG init-param
AL SUPERTAG root
/**/
root.addContent(form);
root.addContent(body);

BufferedWriter out = null;

try
{
out = new BufferedWriter(new FileWriter(path));

/*
ISTANZIAMO LA CLASSE XMLOutputter
CHE CI PERMETTE DI FORMATTARE IL
FILE XML.
/**/
XMLOutputter xout = new XMLOutputter();
xout.setIndent(true);
xout.setNewlines(true);

/*
CON QUESTA ISTRUZIONE SCRIVIAMO
IL DOCUMENTO documento IN UN
BufferedWriter CHE CREA IL FILE
TRAMITE UN FileWriter
/**/
xout.output(documento,out);
}catch (IOException e)
{
System.err.println ("errore: "+e);
}finally
{
try
{
out.close();
}catch(IOException e)
{
System.err.println ("errore: "+e);
}
}
}

public static void main(String args[])
{
CreaXML crea = new CreaXML(args[0]);
}
}
__________________
Il portale delle infomazioni di Latina e Provincia
Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina
http://www.giralatina.it
Il Blog dei Pendolari
http://www.giralatina.it/blog/mybloggie/index.php
texerasmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 14:42   #10
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da texerasmo
Cmq non c'è bisogno di dichiarare uno schema oppure una dtd è meglio.

spiegati
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 15:30   #11
texerasmo
Senior Member
 
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
puo utilizzare questa base di codice per riempire il contenuto dei tag con il rusultato del record.
esempio
<prova>$valore primo campo</prova>

in modo tale che alla fine lui avra un xml e non un file di testo.

Questo se vuole ascoltare il tuo suggerimento
__________________
Il portale delle infomazioni di Latina e Provincia
Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina
http://www.giralatina.it
Il Blog dei Pendolari
http://www.giralatina.it/blog/mybloggie/index.php
texerasmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 16:47   #12
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
La soluzione dell'XML è la migliore, ma sicuramente non quella che è richiesta a loro..
Il mio consiglio è di leggere il contenuto del file in una Stringa, e trattarla poi con i 2000 metodi messi a disposizione dalla classe String.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 17:01   #13
texerasmo
Senior Member
 
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
dipende sempre dall'utilizzo del file xml.
se l'ho si usa in una maniere furba da grossi vantaggi.
1) possiamo far comunicare + appicazioni con la stessa base dati
2) possiamo utilizzare xsl per trasformarlo in cio che vogliamo diversificare il tipo di output.

Per chi vuole, incominciare a vedere qualcosa gli suggeriusco di vedere cocoon che è un web-aplication di apache.

__________________
Il portale delle infomazioni di Latina e Provincia
Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina
http://www.giralatina.it
Il Blog dei Pendolari
http://www.giralatina.it/blog/mybloggie/index.php
texerasmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2004, 18:44   #14
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
ok ragazzi non ho usato XML anche perchè in questo progetto non bisogna usare niente, bisogna solo usare un txt come "database"

vorrei sapere una cosa:

per scrivere nel file stiamo usando java.io.RandomAccessFile

questa classe non ha metodi per cancellare.

come faccio a cancellare una riga?dovrei cancellarla e fare in modo da shiftare in su tutto quello che c'è sotto in modo da non lasciare righe vuote in quanto una riga vuota viene identificata come fineFile.

se non ci sono modi per farlo con questa classe mi consigliate qualche latra classe in grado di farlo?

(abbiamo pensato che potremmo tenere tutto memorizzato in un file di appoggio o una lista, e leggendolo ricopiare sul file tutto quello che ci serve tranne la riga da cancellare ma non mi sembra il top del top.... )
thefrog è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Cuffie e sostanze chimiche: uno studio e...
Terremoto sui dazi USA: la Corte Suprema...
Arianespace potrebbe lanciare il primo r...
Google Pixel 10a disponibile al prezzo m...
Microsoft Copilot nei guai: email riserv...
AOC a 399€ su Amazon: QD-OLED 240 Hz e 0...
La Cina ha recuperato dal mare il primo ...
Boeing CST-100 Starliner: la NASA rende ...
hiop e TaDa uniscono le forze per trasfo...
Thermal Grizzly mostra il Ryzen 7 9850X3...
AMD Ryzen 'Olympic Ridge' Zen 6 per desk...
Donald Trump renderà pubbliche in...
Prezzo mai visto da mesi: ECOVACS DEEBOT...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v