Dúvida sobre manipulação de arquivos

5 respostas
T

Tenho uma pesquisa para entregar sobre manipulação de arquivos, e tenho algumas dúvidas.

[list]
A instâncias de classe File representam caminhos para possíveis locais no sistema operacional? - Podem explicar melhor isso…
Qdo tentei passar algum endereço absoluto (C:\Documents and settings…), deu erro de compliação - expliquem essa tb…rrsrsr
Outra coisa, se a classe File são instancias de caminhos possiveis, como entaum criar um arquivo, e tipo…salvar no desktop.
[/list]

Me desculpe caso falei alguma merda…

Vlw
Thiago Dantas

5 Respostas

felixcomputer

Cara toda vez que vou trabalhar com arquivo eu uso BufferedWriter, tipo assim:

BufferedWriter writer = new BufferedWriter(new FileWriter("nomeDoarquivo.ext"));
writer.write("bla bla");
writer.close();

Espero ter ajudado em alguma coisa :slight_smile:

T

Thiago Dantas:
Tenho uma pesquisa para entregar sobre manipulação de arquivos, e tenho algumas dúvidas.

A instâncias de classe File representam caminhos para possíveis locais no sistema operacional? - Podem explicar melhor isso…


A classe File representa um path de arquivo ou diretório. Por exemplo: File f = new File (“C:\Documents And Settings\All Users\Desktop”) pode representar um diretório. File f = new File (“C:\Documents And Settings\All Users\Desktop\Google Desktop.lnk”) pode representar um arquivo.

Claro que deu erro de compilação - você precisa duplicar as “”

Para criar um arquivo você precisa aprender a usar as outras classes, como FileOutputStream e FileWriter.

T

blz…testei com duas aspas e deu certo…
bom abaixo segue o programa q estou tentando fazer…aplicando os conceitos de manipulação de arquivos. Bom ainda resta uma dúvida, ao instanciar a classe java.io.FileWriter, ocorreu um erro de compilação.

//Implementando conceitos de arquivos em Java
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;

public class FileDemonstration 
{

    public static void main(String[] args) 
    {
    	//Criando uma instância da classe File
    	File file = new File("C:\Documents and settings\Thiago\Desktop\teste.txt");
    	
    	FileWriter writer = new FileWriter("C:\Documents and settings\Thiago\Desktop\teste.txt", true);
    	PrintWriter saida = new PrintWriter(writer, true);
    	
    	//Para saber se a instância de File aponta para algo que existe
    	if (file.exists())
    	{
    		System.out.println("O arquivo/diretorio existe");
    		
    		//Para saber se é um diretório
    		if (file.isDirectory())
    		{
    			System.out.println("E um diretorio");
    			
    			//Verifica se pode ler o diretório
    			if (file.canRead())
    			{
    				System.out.println("Pode ler");
    			}
    			
    			//Verifica se pode escrever no diretório
    			if (file.canWrite())
    			{
    				System.out.println("Pode escrever");
    			}
    		}
    		
    		//Para saber se é um arquivo
    		if (file.isFile())
    		{
    			System.out.println("E um arquivo");
    			
    			//Verifica se pode ler o arquivo
    			if (file.canRead())
    			{
    				System.out.println("Pode ler");
    			}
    			
    			//verifica se pode escrever no arquivo
    			if (file.canWrite())
    			{
    				System.out.println("Pode escrever");
    			}
    		}
    		
    		//Imprime o tamanho do documento
    		System.out.println ("Tamanho: " + file.length());
    	
    	}//Fim do if extremo
    	
    	else
    	{
    		System.out.println ("Não existe esse arquivo/diretorio");
    	}
    	
    	
    	saida.close();
    	writer.close();
    	
		
    }//Fim do método principal (main)
}//Fim da classe FileDemonstration

e o erro foi esse:

unreported exception java.io.IOException; must be caught or declared to be thrown

naum sei pq isso…justo depois q ia testar escrever e ler o arquivo…rsrsrs

se puderem me explicar…

vlw
Thiago Dantas

cassio

Está dando este erro porque operações de acesso a arquivo com classes com FileWriter geram checked exceptions, ou seja, exceções que o compilador já sabe de antemão que poderão ser lançadas durante a execução do código.
Para garantir a execução do seu código, todos os trechos de código que possam gerar uma checked exception devem estar dentro de blocos try/catch que capture o tipo de exceção específica que pode ser lançada (vc pode usar uma Exception genérica, mas se der erro nem sempre vai ter como saber o tipo de exceção gerada…), ou então seu método deve relançar a exceção, usando a palavra chave throws na declaração. Neste caso, quem chama o método terá que tratar o problema…

try{
   ///seu código de leitura e escrita no arquivo vai aqui...
}
catch(IOException e){
   //trate o exceção aqui...
}

ou

public void seuMetodoParaLerOuEscreverNoArquivo() throws IOException{
   //codigo que acesso o arquivo vai aqui... se uma exceção for gerada durante a
   //execução, ela será lançada para o código que chamou este método...   
}
T

Entendi…
mas…agora temos outro problema…não faço idéia de como fazer isso. Vou pesquisar sobre tratamento de exceções…se tiver alguma dúvida eu posto aki…

vlw…
Thiago Dantas

Criado 14 de março de 2007
Ultima resposta 15 de mar. de 2007
Respostas 5
Participantes 4