2013-11-21 2 views
-1

Привет, я новичок в java и программировании, поэтому простите меня, если я ошибаюсь в чем-то легком. Моя цель - импортировать текстовый файл, проверять каждую строку, проверять строку (которая является URL-адресом), если что-то читается, а затем печатать ее в выходной файл. Таким образом, программа тестирует каждый URL-адрес, и если URL-адрес действителен (работает), я напечатаю строку в новом выходном файле.Тест теста URL-адреса Java Test

Моя проблема - это тестовый URL-адрес. Он читает строку, чтобы распечатать URL-адрес, но он печатает несколько раз какие-либо предложения? Есть ли способ сделать его печать один раз? Кажется, я понимаю, что он печатает несколько раз, потому что он читает HTML-код по строкам.

try 
{ 
    // Test URL Connection 
    URL url = new URL("http://www." + line); 
    URLConnection conn = url.openConnection(); 
    conn.setDoOutput(true); 
    wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.flush(); 

    // Get the response 
    rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    while((lines = rd.readLine()) != null) 
    { 
     System.out.println(line); 
    } 
} 
catch(Exception e) 
{ 
    System.out.println(e.toString()); 
} 

ответ

0

Ваш код считывает строки в переменную с именем «lines», но вы печатаете строку. Переменная линия, что вы использовали для создания URL:

URL url = new URL("http://www."+line); 

Если вы хотите, чтобы распечатать URL, то вы можете рассмотреть вопрос о построении URL в виде строки, как это:

String targetUrl = String.format("http://www.%s", domainName); 
System.out.println(targetUrl); 

И затем создайте объект URL.

URL url = new URL(targetUrl); 

Если вы пытаетесь распечатать содержимое для его извлечения из целевого URL, а затем изменить код, чтобы распечатать «линии» вместо:

System.out.println(lines); 

Было бы еще лучше использовать более описательные имена переменных. Например, вместо создания URL-адреса с использованием «строки» используйте имя переменной, например «domainName». Затем, когда вы читаете строку за раз, вы можете использовать имя переменной «line».

// Assuming that domainName is set before the try block 
try 
{ 
    // Test URL Connection 
    URL url = new URL("http://www."+domainName); 
    URLConnection conn = url.openConnection(); 
    conn.setDoOutput(true); 
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.flush(); 

    String line = null; 

    // Get the response 
    rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    while ((line = rd.readLine()) != null) 
    { 
     System.out.println(line);      
    } 
} 
catch (Exception e) 
{ 
    System.out.println(e.toString()); 
} 
Смежные вопросы