Java - неправильный URL - неверный - нет протокола

Этот код:

        String file = "";
    String filename = "";
    try{
        BufferedReader ins = new BufferedReader(new FileReader(new File("filename.txt")));//get file name
        while (ins.ready()) {
           filename = ins.readLine();
        }
        ins.close();
        }catch(Exception e){
        }

        String[] sa = filename.split("/");
        file = sa[sa.length - 1];

        try {
            System.out.println(filename);
        } catch (Exception e) {
            e.printStackTrace();
        }

Печать:

http://wordpress.org/plugins/about/readme.txt

Когда я пытаюсь сделать:

         URL url = new URL(filename);

Я получаю исключение по неверно сформированному URL: нет протокола Это происходит без причины. Если я вручную назначу строку имени файла " http://wordpress.org/plugins/about/readme.txt", это будет работать отлично, что-то не так с программой чтения файлов?

Вещь идет как

Прочитайте строку из файла, а затем сделайте его URL-адресом! Прекратите редактировать неправильно!

2 ответа

Решение

Идея:

Возможно, файл сохранен в формате UTF-8, но с дополнительным символом спецификации в начале файла. Это пространство Юникода с нулевой шириной.

filename = filename.replaceFirst("^\uFFFE", "");

Рабочий код:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.net.URL;

public class MyFileReader {

    public static void main(String[] args) {
        String file = "";
        String filename = "";
        try {
            BufferedReader ins = new BufferedReader(new FileReader(new File("c:\\filename.txt")));// get file name
            while (ins.ready()) {
                filename = ins.readLine();
            }
            ins.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        String[] sa = filename.split("/");
        file = sa[sa.length - 1];

        try {
            System.out.println(filename);
            URL url = new URL(filename);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            System.out.println(file);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

Содержимое файла filename.txt:

http://wordpress.org/plugins/about/readme.txt

Выход из программы:

http://wordpress.org/plugins/about/readme.txt
readme.txt

Ошибки / Исключения:Нет

Другие вопросы по тегам