0
点赞
收藏
分享

微信扫一扫

4.6作业

查拉图斯特拉你和他 2022-04-06 阅读 58
java

1、使用URLConnection去下载网上任意一个资源

BufferedOutputStream bo = null;
BufferedInputStream bi = null;
URL url = null;
HttpURLConnection urlConnectio = null;
try {
    url = new URL("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg3.doubanio.com%2Fview%2Frichtext%2Fs%2Fpublic%2Fp247984790.jpg&refer=http%3A%2F%2Fimg3.doubanio.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651837648&t=2e15f7e1478d327b1a9b5061680d4def");
    urlConnectio = (HttpURLConnection) url.openConnection();
    InputStream is = urlConnectio.getInputStream();
    bi = new BufferedInputStream(is);
    FileOutputStream fos = new FileOutputStream("wi.jpg");
    bo = new BufferedOutputStream(fos);
    int i = -1;
    while ((i = bi.read()) != -1) {
        bo.write(i);
    }

} catch (Exception e) {
    e.printStackTrace();
}finally {
    urlConnectio.disconnect();
    if (bo!=null){
        try {
            bo.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    if (bi!=null){
        try {
            bi.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2、分别使用一下5种方式获取Class对象
    1 使用数据类型.class的方式可以获取对应类型的Class对象。 
    2 使用引用/对象.getClass()的方式可以获取对应类型的Class对象。 
    3 使用包装类.TYPE的方式可以获取对应基本数据类型的Class对象。 
    4 使用Class.forName()的方式来获取参数指定类型的Class对象。 
    5 使用类加载器ClassLoader的方式获取指定类型的Class对象。

public static void main(String[] args) throws ClassNotFoundException {
    Class c1=String.class;
    System.out.println("c1:"+c1);
    String s="ss";
    c1=s.getClass();
    System.out.println("c1:"+c1);
    c1=Integer.TYPE;
    System.out.println("c1:"+c1);
    c1 = Class.forName("java.lang.String");
    System.out.println("c1:"+c1);
    ClassLoader classLoader = zuo02.class.getClassLoader();
    c1=classLoader.loadClass("java.lang.String");
    System.out.println("c1:"+c1);

3、Constructor练习
     1.使用原始方式以无参形式构造Person类型的对象并打印
    2.使用反射机制以无参形式构造Person类型的对象并打印        
    3.使用原始方式以有参方式构造Person类型的对象并打印
    4.使用反射机制以有参方式构造Person类型的对象并打印
    5.使用反射机制获取Person类中所有的公共构造方法并打印

  public static void main(String[] args) throws Exception {
        Person p1 = new Person();
        System.out.println(p1);
        BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("1.txt")));
        String s = br.readLine();
        Class c1 = Class.forName(s);
        Object o = c1.newInstance();
        if (o instanceof  Person){
            Person p2 = (Person) o;
            System.out.println("通过配置文件+反射机制创建对象 : " + p2);
        }
        br.close();
        Person p3 = new Person("下坡" , 23);
        System.out.println("原始方式 有参构造器创建对象 : " + p3);
        Class c3 = Person.class;
        Constructor constructor = c3.getConstructor(String.class, int.class);
        Object o1 = constructor.newInstance("小明", 26);
        System.out.println("反射机制 有参构造器创建对象 : " + o1);
        Constructor[] constructors = c3.getConstructors();
        for (Constructor ct : constructors){
            System.out.println("构造方法的访问修饰符:" + ct.getModifiers());
            System.out.println("构造方法的方法名:" + ct.getName());
            Class[] parameterTypes = ct.getParameterTypes();
            System.out.println("构造方法的所有的参数列表:");
            for (Class cs : parameterTypes){
                System.out.print(cs + " ");
            }
            System.out.println();
            System.out.println("------------------");
        }
        
    }
}
class Person {
    private String name ;
    private int age ;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
举报

相关推荐

java入门4.6

4.6总结

4.6 总结

上机笔记4.6

4.6 浮点数

oblog_4.6_SQL 语句

0 条评论