Manipulando arquivos com java

10 respostas
bb1

Pessoal, houve a necessidade de eu aqui em casa organizar uma pasta com 1074 arquivos, organiza-los em pastas e renomea-los de maneira apropriada.
Por exemplo:

Quero retirar a parte final “(J) [!]” dos nomes de todos os arquivos, por exemplo “Cheln (J) [!].bin”, quero que fique apenas “Cheln.bin”

so que se fosse somente um arquivo eu faria renomeando de maneira normal, mas são 1074, não da pra sair renomeando de um em um.

o que eu quero é fazer uma aplicaçãozinha básica para sair renomeando de maneira automatica esses arquivos.

eu inicialmente faria um array com os nomes de todos os arquivos, depois sairia corrigindo arquivo por arquivo dentro do looping.

só que eu não sei manipular arquivos em java, eu sei q tenho q usar a classe File., mas nao sei como usar…

será que alguem aqui poderia me dizer como que eu faço esse array com os nomes dos meus arquivos e renomea-los ???

valeu pela força :slight_smile:

10 Respostas

Luiz-SP

Bem isso deve funcionar…pelo menos qui funcionou, qualquer coisa põe aí,

/*************************************************
 *                                               *
 * Feito por Luiz Claudio França dos Santos      *
 * Porque programar é acima de tuod um prazer    *
 *            6 de abril de 2006                 *
 * ***********************************************/

package threads;

import java.io.*;

public class TesteFile {

	public static void main(String[] args) {


		String arquivos[] = new File(System.getProperty("user.dir")).list();
		for (int i = 0; i < arquivos.length; i++) {
			try {
				String arquivo = arquivos[i];
				if (arquivo.contains("(J)")) {
					File entrada = new File(System
							.getProperty("user.dir")
							+ System.getProperty("file.separator") + arquivo);
					
					arquivo = arquivo.substring(0, arquivo.indexOf("(J)"))
					+ ".bin";
					
					File saida = new File(System
							.getProperty("user.dir")
							+ System.getProperty("file.separator") + arquivo);
					
					FileInputStream fis = new FileInputStream(entrada); 
					FileOutputStream fos = new FileOutputStream(saida);
					byte[] buf = new byte[(int)entrada.length()];
					while ((fis.read(buf)) > 0) {
			            fos.write(buf, 0, buf.length);
			        }
                    fis.close();  
					fos.close();
					//Retire essa linha se quiser preservar o arquivo original 
					entrada.delete();
				}
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}

}
Luiz-SP

ah excute isso no diretório em que os arquivos estão…

bb1

eu consegui fazer Luiz, no entando eu nao escrevi tantas linhas de codigo como vc fez.,
eu tou no trabalho, quando chegar em casa eu posto o que eu fiz ok pra vc dar uma olhada.,
valeu mesmo

ate +

o que eu queria saber fazer agora era compactar arquivos em .zip
tem uma classe java.util.Zip se nao me engano., vou estuda-la mais tarde.,
valeu mesmo

analuiza.fagundes

Olá para todos , sou iniciante em java e pretendo começar a fazer um programa que sincroniza arquivos em uma pasta e em outra , já li um artigo deste forum que fala sobre este assunto , gostaria que os amigos do forum me indicassem onde eu posso encontrar algum material que me ajude a desenvolver esta aplicação

ricoldi

Nossa velha conhecida JAVADOC

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

Grande tutorial GUJ (Não sei se é o que vc leu)

http://www.guj.com.br/java.tutorial.artigo.13.1.guj

Mais em

http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=org.mozilla%3Apt-BR%3Aofficial&hs=emx&q=File+java&btnG=Pesquisar&meta=lr%3Dlang_pt

Att
Ricoldi

analuiza.fagundes

muito obrigado pelas ajuda vou começar a fazer aki …

P

oi
alguém pode me ajudar a colocar o conteudo de um arquivo .txt em um vetor!
obrigada
:slight_smile:

ricoldi

Como um amontoado de chars vai ser quebrado em posições? Separadores? Linhas?

Exemplifique o que deseja…

P

ola,
na verdade este arquivo contem varias palavras mas meu vetor é do tipo de um objeto de uma classe que criei dai eu tenho que ler o arquivo e ver se ele contem a palavra federal ou estadual na primeira linha se tiver ele cria ou obj dotipo fed. ou est. usando os set’s para inserir os dados do arquivo no novo objeto que esta sendo criado.Eu nãosei manipular arquivos mas pensei em algo assim

try { FileReader fr = new FileReader(filename); BufferedReader in = new BufferedReader(fr); String line = in.readLine(); while (line != null) { if(line.contains("Federal")) //cria um objeto do tipo federal else //cria obj tipo estadual line = in.readLine(); } in.close(); } catch (FileNotFoundException e) { System.out.println("Arquivo \""+filename+"\" não existe."); } catch (IOException e) { System.out.println("Erro na leitura de " + filename+"."); }
obrigada pela ajuda

ricoldi

É isso ai que você pensou mesmo…
já tentou fazer?

BufferedReader in = new BufferedReader(new FileReader("conteudo.txt"));
        String str;
        while((str = in.readLine()) != null){
           System.out.println(str);
        }
        in.close();

http://www.arquivodecodigos.net/dicas/java-lendo-de-um-arquivo-usando-bufferedreader-e-filereader-478.html

Criado 5 de abril de 2006
Ultima resposta 15 de abr. de 2011
Respostas 10
Participantes 5