Gravar/Consultar em um Arquivo TXT

Pessoal será que alguém aqui do fórum pode me ajudar, sou iniciante em java e estou buscando adquirir lógica nessa ótima linguagem JAVA.

Se tenho dois vetores nome[5] e rg[5]

Como faço para gravar dois registros em um arquivo txt, e após gravar esses dois registros, efetuar uma consulta, ou seja, emitir um relatório SOMENTE nos dois registros gravado no arquivo.

Tenho uma certa barreira em lógica mais estou procurando melhorar, se alguém poder me ajudar ou me orientar, desde já agradeço.

Sérgio, desculpe-me mas eu não consegui entender bem a tua dúvida. Você poderia dar um exemplo do que você realmente quer ?

Estou iniciando a manipular arquivo txt.
Exemplo simples.
Vetor nome[5], vamos supor que grave 3 nomes.

Como faço para gravar no arquivo txt esse vetor
Como faço para consutar o conteúdo gravado no arquivo

Se vc souber me orientar agradeço, visto que através disto vou desenvolver outros problemas manipulando arquivo txt.

procure pela biblioteca IO!!!

olá sérgio, creio que vc possa salvar esse arquivo em um string, mais ou menos assim:

File arquivo = new File(“C:\Documents and Settings\Henrique\Meus documentos\Rodrigo\Primeiras Medidas\RLCSerieTeste.txt”);
FileInputStream in = new FileInputStream(arquivo);
InputStreamReader conversor = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(conversor);

tambem sou iniciante em JAVA, e estou com o seguinte problema: o arquivo txt é composto de 4 colunas de numeros, e quero pegar duas delas e plotar em um grafico. Para isso , creio que tenho de separar esses dados na string. Alguém têm alguma sugestão?

Cara, ja que vc tem 4 colunas, uma maneira é preencher uma matriz com os valores do seu arquivo texto, ai pela matriz, vc pode pegar somente os dados q forem necessarios, e manipular esses dados em seguida.

olá cs.santos!

Obrigado pela resposta; usei o método String.split. Mas não estou conseguido separar por espaços, vc tem alguma sugetão?

A minha string é da seguinte maneira:

String test = “44949.5 28.9 .791 .115112414467253”;

e guardo cada elemento dessa maneira (pelo menos eh o que eu queria … )

String[] elemento = test.split("");

mas ele não reconhece o espaço (na verdade os elementos estão separados por um tab, mas tb se o coloco não funciona).

Valeu!!!

vc ja tentou:

String[] elemento = test.split(" ");

dando um espaço entre as aspas??

se num der certo, posta seu código ai.

flw

Olha só rpimenta,

criei uma classe de teste:

[code]public class Split{

public static void main(String[] args){
	
     String teste = "1234 5678 0987 6543 12345";
	
     String[] elemento = teste.split(" ");
	
     System.out.println("String sem split = " + teste);
     System.out.print("\n");
	
     for(int i = 0; i< elemento.length; i++)
          System.out.println("Posicao " + i + " do vetor = " + elemento[i]);
}

}[/code]

Quando vc quer separar por espaço, vc precisa fazer : teste.split(" ");
com isso o compilador sabe que vc quer separar por espaços.

flw

Olá cs santos, funcionou sim, e ainda encontrei outra maneira … valeu!
Mas, aproveitando sua boa vontade, vc tem alguma sugestao de como posso ler varias strings e separa-las (isso eu consegui, armazenado elas da maneira do spring teste …), e depois chama-las em outro metodo? ou seja armazenar cada coluna de cada linha em uma variavel seria o mais viavel?

Obrigado!

[quote=“rpimenta”]Olá cs santos, funcionou sim, e ainda encontrei outra maneira … valeu!
Mas, aproveitando sua boa vontade, vc tem alguma sugestao de como posso ler varias strings e separa-las (isso eu consegui, armazenado elas da maneira do spring teste …), e depois chama-las em outro metodo? ou seja armazenar cada coluna de cada linha em uma variavel seria o mais viavel?

Obrigado! [/quote]

Iai cara, q bom q funcionou, mas quanto a sua outra dúvida, eu não consegui entender mto bem oq vc quer fazer, posta o código ai como ta, e me explica de novo, blz??

mas acredito que criar uma váriavel para cada String não seja uma boa ideia, só se realmente não tiver jeito.

Flw!!

E ai cs santos, mais uma vez obrigado. No código vou tentar me explicar melhor …

[code]import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.;
import java.util.
;
import java.lang.NumberFormatException;
import java.text.NumberFormat;
import java.text.MessageFormat;

import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.*;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.data.DomainOrder;
import org.jfree.data.general.SeriesDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class novografico extends JFrame{

public novografico(String title) throws Exception{
    
    super(title);
    
    XYDataset dataset = createDataset();
    JFreeChart chart = createChart(dataset);
    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);
    chartPanel.setMouseZoomable(true, false);
   }

// Bom, aqui leio um arquivo de uma tabela em txt (cada linha com 4 colunas de números), salvo-o em uma string e em seguida em uma string
// array, de 4 elementos. Depois converto cada elemento da string para double (não sei se estou sendo muito burro, mais sou iniciante em java …)
// O que estou tentando fazer é pegar duas dessas colunas (agora em double) e colocar nos pontos do método series.add abaixo
// Acho que vou ter que fazer um loop de alguma maneira, e depois fazer o q vc sugeriu … Mas o loop que eu fiz sobrescreve as variáveis
// Minha tentativa …

/* public extrator extract(String) throws Exception {
File arquivo = new File(“C:\Documents and Settings\Henrique\Meus documentos\Rodrigo\Primeiras Medidas\RLCSerieTeste.txt”);
FileInputStream in = new FileInputStream(arquivo);
InputStreamReader conversor = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(conversor);
String linha;
String[] elemento;
linha = bf.readLine();
elemento = linha.split("[\s]+");
bf.close();
in.close();return

   */

  
private XYDataset createDataset() throws Exception {
     //CONVERT STRING TO DOUBLE
     //double elemento0;  
     //elemento0 = Double.parseDouble(elemento[0]); /* elemento[0] é uma string*/
    
    XYSeries series1 = new XYSeries("TRZ");
    series1.add(1.0, 1.0); // alguns pontos que coloquei para testar se o programa está plotando, e está
    series1.add(2.0, 4.0);// acho que teria que fazer um loop para não ter que colocar um a um; afinal são mais de 100 ...
    series1.add(3.0, 3.0);
    series1.add(4.0, 5.0);
    series1.add(5.0, 5.0);
    series1.add(6.0, 7.0);
    series1.add(7.0, 7.0);
    series1.add(8.0, 8.0);
    
    
    
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series1);
  
    return dataset;
    
    
}

// ListDouble colunas = new ArrayListDouble();

//public ListDouble getColunas(){

//    return colunas;

// }

private JFreeChart createChart(XYDataset dataset) {
    // create the chart...
    JFreeChart chart = ChartFactory.createXYLineChart(
    "Medida", // chart title
    "X", // x axis label
    "Y", // y axis label
    dataset, // data
    PlotOrientation.VERTICAL,
    true, // include legend
    true, // tooltips
    false // urls
            
    );

    return chart;
}

public static void main(String[] args) throws Exception {
    novografico teste = new novografico("teste");
    teste.pack();
    teste.setVisible(true);
    }

}[/code]

Bom, espero que eu tenha sido mais claro, e se vc puder me ajudar ficarei muito grato.

Valeu mesmo cara

Abraços

Viva Rpimenta…

Eu sou novo em java e estou também a tentar fazer algo identico, ou seja estrair dados de um TXT file para criar um grafico…

você consegui solucionar o problema?

cumprimentos,

Jorge

Olá jorgeflorencio,

Cara, há muito tempo não trabalho com java, nem lembro mais…

O que eu me lembro é que o jfreechart tem todos os pacotes prontos, tem q adaptar para o que vc quer …

E tb nem sei se o jfreechart é o melhor mesmo …

Desculpe por não poder ajudar …

[]'s

Muito Obrigado…

valeu mesmo…

já agora não sabes onde posso arranjar jfreechart gratuito :slight_smile:

emule!!!