从包含数组列表和类

时间:2016-03-09 13:49:42

标签: file class arraylist

我想在我的列表中使用课程IpAddress而不是String,如下所示:

ArrayList<IpAddress> IpAddresses = new ArrayList<>(); 

但它不起作用。我无法将字符串line添加到我的列表中,因此程序无法正常工作。我该怎么办?

public class IpAddress implements Comparable<IpAddress> {

    private String ip;

    public IpAddress(String ip) {
        this.ip = ip;
    }       

    @Override
    public int compareTo(IpAddress o) {
        return this.ip.compareTo(o.ip);
    }
}

public class IPvLIST {

    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader(new File("ip.txt"));
        BufferedReader br = new BufferedReader(fr);
        ArrayList<String> IpAddresses = new ArrayList<>();
        String line;
        int n = 0;

        while ((line = br.readLine()) != null) {
            IpAddresses.add(line);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将字符串line转换为IpAddress。根据您拥有的代码,将while语句更改为

while ((line = br.readLine()) != null) {
    IpAddresses.add(new IpAddress(line));
}

根据这是一个简单的测试程序还是其他内容,您可能还会查看.NET类IPAddress。这有一个解析函数,它将获取字符串并将其转换为IPAddress,这样可以更轻松地执行实际的网络功能。