olha soh tenho uma folha de pagamento e quando fechar o programa preciso q os funcionarios q eu add no cadastro não se percam como faço isso?
Use um banco de dados. Não gostaria que você guardasse meu salário em um arquivo .txt e depois acabasse fazendo alguma “salada” com ele.
Sou novato, naum entendo muito de banco de dados!
como posso fazer um?
SQL é bom?
abraaçç
Se está começando é interessante dar uma olhada em arquivos antes de partir para um BD.
Dê uma olhada:
http://java.sun.com/docs/books/tutorial/essential/io/
[quote=guisantogui]Sou novato, naum entendo muito de banco de dados!
como posso fazer um?
SQL é bom?
abraaçç[/quote]
Precisa de um servidor de banco.
Tem vários free, tipo o PostgreSQL e o MySQL.
[quote=BrunoBastos]Se está começando é interessante dar uma olhada em arquivos antes de partir para um BD.
Dê uma olhada:
http://java.sun.com/docs/books/tutorial/essential/io/[/quote]
Eu também comecei por arquivos; só que já vi muita gente boa que nunca aprendeu a mexer com arquivos, mas é campeã ao mexer com bancos de dados. O problema, é claro, surgia quando eles precisavam fazer um log e por algum motivo eles não tinham um log pronto; aí se atrapalhavam todos com abrir e fechar arquivos-texto.
No caso específico em que ele queria guardar dados de funcionários, ainda aconselho a usar um banco de dados, por mais simples que seja, já que isso vai ser o ganha-pão dele.
Mas, eh para um trabalho, ateh qro aprender BD, mas por enquanto um txt jah me ajuda muito!
PS.: se tiverem tutoriais de PHP ou BD por favor me mandem o link!
tks
Se um arquivo texto está bom mesmo então:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.math.BigDecimal;
public class SalvarEmArquivoTexto
{
public static void main(String[] args)
throws FileNotFoundException, IOException
{
Arquivo arquivoCsv = new Arquivo("/arquivo_texto.csv"); // C:\arquivo_texto.csv
Pessoa joao = new Pessoa(2, "João", new BigDecimal("1000.00"));
Pessoa maria = new Pessoa(1, "Maria", new BigDecimal("2500.00"));
Pessoa jose = new Pessoa(3, "José", new BigDecimal("465.15"));
arquivoCsv.escrever(joao, maria, jose);
Pessoa p = arquivoCsv.ler(3);
System.out.println(p);
System.out.println(arquivoCsv.ler(1));
System.out.println(arquivoCsv.ler(2));
System.out.println(arquivoCsv.ler(0));
System.out.println(arquivoCsv.ler(4));
}
}
class Pessoa
{
long id;
String nome;
BigDecimal salario;
public Pessoa(long id, String nome, BigDecimal salario)
{
this.id = id;
this.nome = nome;
this.salario = salario;
}
@Override
public String toString()
{
return id + ";" + nome + ";" + salario;
}
static Pessoa parse(String linha)
{
String[] arrayPessoa = linha.split(";");
return parse(arrayPessoa);
}
static Pessoa parse(String[] arrayPessoa)
{
long id = Long.parseLong(arrayPessoa[0]);
BigDecimal salario = new BigDecimal(arrayPessoa[2]);
return new Pessoa(id, arrayPessoa[1], salario);
}
}
class Arquivo
{
File f;
public Arquivo(String nomeArquivo)
{
this.f = new File(nomeArquivo);
}
public void escrever(Pessoa... p)
throws FileNotFoundException
{
PrintWriter writer = null;
try
{
writer = new PrintWriter(f);
for (Pessoa pessoa : p)
{
writer.println(pessoa);
}
}
finally
{
writer.close();
}
}
public Pessoa ler(long id)
throws FileNotFoundException, IOException
{
String strId = Long.toString(id);
LineNumberReader r = null;
try
{
r = new LineNumberReader(new FileReader(f));
String linha;
while ((linha = r.readLine()) != null)
{
String[] arrayPessoa = linha.split(";");
if (arrayPessoa[0].equals(strId))
return Pessoa.parse(arrayPessoa);
}
return null;
}
finally
{
r.close();
}
}
}
Provavelmente já tem bibliotecas prontas p/ ligar com arquivos CSV.