FileWriter só lê um pedaço

2 respostas Resolvido
java
N

Olá,eu estava pondo meu estudo em prática fazendo um simples exemplo,comandado pelo Usúario com Scanners no qual você digita seu Nome de Usúario(do Windows),o nome do novo arquivo e o que deseja escrever nele,até aí tudo bem,mas ele só lê os caracteres que foram digitados antes de dar espaço
Ex : Oi eu sou o Goku
Arquivo final : Oi
Tentei como alguns informaram,usando um BufferedWriter,mas deu a mesma coisa,alguém sabe a origem desse problema?
//OBS:Não liguem para os nomes,estava sem ideias para os mesmos
//Isso é só uma parte da classe,O intuito era fazer um criador de arquivos,que fazia arquivos .iso,.img,.exe e .txt,mas só o .txt tinha esse método de escrever,os 3 restantes nem abrem(óbvio)só fiz por teste mesmo

case 1:
System.out.println(“Nome do Arquivo:”);

Scanner scanner = new Scanner(System.in);
		String string = scanner.next();
		System.out.println("Seu nome:");
		Scanner scan = new Scanner(System.in);
		String string1 = scan.next();
		FileWriter	writer = new FileWriter("C:\\Users\\"+string1+"\\Desktop\\"+string+".txt");
***Iria ficar assim por exemplo (C:\\Users\\Usúario\\Desktop\\Qualquernome.txt);
	
		
	
		System.out.println("Deseja escrever oque dentro do arquivo?");
		Scanner scann =new Scanner(System.in);
		String tring = scan.next();
	 
		 writer.write(tring);
		
	
			
		writer.close();
		System.out.println("Salvo no Desktop");
		break;

2 Respostas

N

Descobri que o arquivo Scanner tem alguma coisa haver com isso,dei um system.out.print nele e vi que ele só lê antes do espaço,tem alguma forma de ele conseguir ler depois ou acabou-se o código por completo?Pois se for o fim mesmo,posso fazer com outros atributos como swing,grato!

D
Solucao aceita

scan.next(); lê uma string até o espaço ou quebra de linha, scan.nextLine(); lê uma string até a quebra de linha.

O scan.nextInt() é a mesma coisa, lê o int até o espaço ou quebra de linha.

Exemplo:

Scanner scan = new Scanner(System.in);
int n1 = scan.nextInt();
int n2 = scan.nextInt();
int n3 = scan.nextInt();

System.out.println(n1 + " " + n2 + " " + n3);

Tente digitar:

1 2 4

Só pedirá para digitar uma única vez

Tente digitar:

1 2

Pedirá para digitar mais uma vez pois são três ints.

Criado 19 de abril de 2018
Ultima resposta 19 de abr. de 2018
Respostas 2
Participantes 2