FileOutputStream não está gravando

Olás.

Estou com um probleminha. Estou tentando salvar um pequeno texto em um arquivo qualquer utilizando o FilOutputStream. Porém, após realizar o flush() e fechar o fluxo, não estou conseguindo visualizar o arquivo que criei, pois aparentemente ele não existe.

Alguém consegue me ajudar?

Dá algum erro??

Você cria algum arquivo antes de usar o FileOutputStream??

coloca o pedaço do código

Então, não dá nenhum erro.

Segue o trecho do teste que eu fiz. Na verdade o teste era para detectar onde estava dando loop infinito. Agora achei, mas não estou conseguindo resolver.

File file_aux = new File("temp/aux.pdf");	
		file_aux.createNewFile();
		System.out.println(file_aux.getAbsolutePath() + " Arquivo existe? " + file_aux.exists());
		
		FileOutputStream fos_aux = new FileOutputStream(file_aux);
		
		fos_aux.write("testandooooooooooooooooooooooooooooooooooooooooooooooooooooooooo".getBytes());
		fos_aux.flush();
		fos_aux.close();
		
		System.out.println( (new File("temp/aux.pdf")).exists());

Quando executo este código, ele no início não existe (o arquivo), o que está correto, porém quando termina a execução ele deveria passar a existir, não? Mas na minha máquina eme continua não existindo!

Quando vc o createNewFile(), ele retorna true ou false?

o arquivo tem q existir pra vc escrever nele

se eu fosse arriscar, eu diria que o caminho do arquivo está incorreto

vc já tentou usar o caminho absoluto??

edit:

qdo vc usa o new File para um arquivo qu não existe, ele é criado

edit 2:

se eu trocar o caminho que vc usa pra se referênciar ao arquivo, o código funciona

talvez vc n tenha permissão para gravar nessa pasta

já tentou o debug??

Engraçado, rodei seu código aqui e também não funcionou.
Pior, o sistema de arquivos reconhece que o arquivo existe (não me deixa criar outro com o mesmo nome), mas o arquivo não aparece. Agora fiquei com dúvida também :shock: .

A linha ( (new File(“temp/aux.pdf”)) é só para confirmar que o arquivo foi criado. Mas em todas as chamadas quando faço: exists(), ele retorna true, sempre false.

Se fosse permissão, ele iria me retornar acesso negado, não?

Retirando a última linha, eu vou procurar o arquivo e não encontro.

Mesmo usando o caminho absoluto, do tipo : c:\aux.txt (ou qualquer outra extensão), não encontro o arquivo. O arquivo não é criado.

Alguma idéia?

O mais engraçado é que eu sempre usei o FileOutputStream assim:


FileOutputStream fos_aux = new FileOutputStream("teste.txt");
		
		fos_aux.write("testandooooooooooooooooooooooooooooooooooooooooooooooooooooooooo".getBytes());
		fos_aux.flush();
		fos_aux.close();

e sempre funcionou!

O seu código dá esse erro abaixo

java.io.IOException: The system cannot find the path specified at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(Unknown Source) at br.com.furutani.roboprintscreen.Iniciar.main(Iniciar.java:17) false

Fazendo algumas alterações funciona bem

[code]File file_aux = new File(“D:/teste.txt”);
try {
System.out.println(file_aux.getAbsolutePath() + " Arquivo existe? " + file_aux.exists());

	FileOutputStream fos_aux = new FileOutputStream(file_aux);
	
	fos_aux.write("testandooooooooooooooooooooooooooooooooooooooooooooooooooooooooo".getBytes());
	fos_aux.flush();
	fos_aux.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
	
	System.out.println( (new File("D:/teste.txt")).exists());

[/code]

[quote]D:\teste.txt Arquivo existe? true
true
[/quote]
O arquivo é criado normalmente. Acho que o problema é a extensão.