/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jnotepad;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
*
* @author paolo
*/
public class FileManager {
/**
* Ritorna una istanza non funzionante di Filemanager. Per rendere operativa<br>
* questa istanza bisogna settarne il file;
*/
public FileManager(){
this.f=null;
this.io=null;
this.out=null;
this.outd=null;
}
public void setFile
(File pFile
) {
if(this.f!=null){
this.close();
}
this.f= pFile;
if (!this.f.exists()) {
try {
this.f.createNewFile();
}
}
try {
}
}
/**
* Crea una nuova instanza del file, apre la connessione col file specificato nel parametro. N.B. se il file non esiste viene creato.
* @param pPathFile il path del file con cui si vuole stabilire una connessione.
*/
public FileManager
(String pPathFile
) {
this(new File(pPathFile
));
}
/**
* Crea una nuova instanza del file, apre la connessione col file specificato nel parametro. N.B. se il file non esiste viene creato.
* @param pFile Il file col quale si vuole aprire una connessione.
*/
public FileManager
(File pFile
) {
this.f= pFile;
if (!this.f.exists()) {
try {
this.f.createNewFile();
}
}
try {
}
}
/**
* Scrive sul file con cui si è aperta la connessione. N.B. questa funzione sovrascrive il file.
* @param pStringa la stringa che si vuole scrivere sul file.
*/
public void scrivi
(String pStringa
) {
this.cancella();
char[] stringa = pStringa.toCharArray();
for (int i = 0; i < stringa.length; i++) {
try {
this.outd.write(stringa[i]);
}
}
}
/**
* Chiude la connessione con il file.
*/
public void close() {
try {
this.io.close();
this.out.close();
this.outd.close();
}
}
/**
* Cancella il contenuto del file con cui è stata stabita una connessione
*/
public void cancella() {
this.elimina();
try {
this.f.createNewFile();
}
try {
}
}
/**
* Elimina il file con cui è stata stabilita la connessione.
*/
public void elimina() {
this.close();
this.f.delete();
}
/**
* Aggiunge una stringa al file con cui si è stabilita la connessione.
* @param pStringa la stringa da aggiungere al file.
*/
public void aggiungi
(String pStringa
) {
char[] str = pStringa.toCharArray();
for (int i = 0; i < str.length; i++) {
try {
this.outd.write(str[i]);
}
}
}
/**
* Legge il contenuto del file e lo salva in una stringa.
* @return Una stringa contenente il contenuto del file con cui si è aperta una connessione.
*/
long lunghezza = this.f.length();
for (int i = 0; i < lunghezza; i++) {
char c = 0;
try {
this.io.seek(i);
}
try {
c = (char) this.io.readByte();
}
retval = retval + c;
}
return retval;
}
/**
* Legge il contenuto del file e lo suddivide in parti ad ogni occorrenza di pSeparator trovata.
* @param pSeparator Una stringa da usare come separatore.
* @return Un array di stringhe contenente tutte stringhe comprese tra un'occorrenza e l'altra di pSeparator
*/
String[] retval
= str.
split(pSeparator
);
return retval;
}
/**
* Ritorna una specifica stringa tra due occorrenze.
* Esempio:
* Questo&è&un&esempio
* Con pSeparator & e pId 2 ritornerà la stringa "un"
* @param pSeparator Una stringa da usare come separatore
* @param pId L'indice dell'occorrenza.
* @return Una stringa contenente una determinata stringa tra due occorrenze.
*/
String[] str
= this.
leggi(pSeparator
);
if (pId < str.length) {
return str[pId];
}
return "";
}
/**
* Copia il file con cui è stata aperta una connessione in un nuovo file;
*
* N.B. Se il Path non esiste crea un nuovo file con quel nome.
* N.B. Il file di origine non viene cancellato.
* @param pPath Il percorso del file in cui copiare.
*/
public void copia
(String pPath
) {
FileManager file = new FileManager(pPath);
String thisfile
= this.
leggi();
file.scrivi(thisfile);
}
public static void main
(String...
args){
FileManager f= new FileManager();
f.
setFile(new File("C://Users/Paolo/Desktop/ciao.txt"));
// System.out.println(f.leggi());
f.
setFile(new File("C://Users/Paolo/Desktop/ciao.txt"));
f.scrivi("ciao ciao");
}
}