Dúvida sobre manipulação de arquivos

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

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:

[quote=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…
[/quote]
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.

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

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...   
}

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