Olá. Eu me chamo Alan e ingressei no GUJ porque estou desesperado tentando entender um código. Eu desenvolvi, com alguns auxílios externos, o seguinte código:
package home;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class Main {
static String endereco;
public static StringBuilder obterImpressora(String endereco) {
StringBuilder codigoFonte = new StringBuilder();
try {
URL url = new URL(endereco);
BufferedReader leitor = new BufferedReader(new InputStreamReader(url.openStream()));
String armz = "";
while ((armz = leitor.readLine()) == null) {
codigoFonte.append(armz);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return codigoFonte;
}
public static void main(String[] args) {
endereco = "http://192.168.1.136/";
obterImpressora(endereco);
}
}
Ao executá-lo não recebo retorno algum.
Sou iniciante no desenvolvimento de sistemas e com certeza entrei numa bela duma enrascada.
Você pode me ajudar?
No método main, receba o retorno do método obterImpressora:
StringBuilder resultado = obterImpressora(endereco);
System.out.println(resultado.toString());
1 curtida
Muito obrigado Lucas pela sua colaboração, mas quando executo ainda não recebo nenhum resultado.
Executei seu código aqui, e parece que ele fica preso no while. Fiz um exemplo, porém, agora lendo o Buffer usando classes do Java8, veja:
iimport java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.stream.Collectors;
public class Main {
public static String obterImpressora(String endereco) throws IOException {
URL url = new URL(endereco);
try (BufferedReader leitor = new BufferedReader(new InputStreamReader(url.openStream()))) {
return leitor.lines().collect(Collectors.joining());
}
}
public static void main(String[] args) {
try {
String resultado = obterImpressora("https://raw.githubusercontent.com/lfcamarati/aspose-test/master/pom.xml");
System.out.println(resultado);
} catch (IOException e) {
System.err.println("Não foi possível recuperar o conteúdo da url informada: " + e.getMessage());
}
}
}
Ah rapaiz, no seu código, no while apenas mude para enquanto for diferente de null, e não igual:
while ((armz = leitor.readLine()) != null) {
codigoFonte.append(armz);
}
Que significa: enquanto houver conteúdo para ser lido, continue executando o loop.