// 表单相关的 'angular2/commom' => '@angular/forms' 三、新增NgModule 官方说明 Angular 模块能帮你把应用组织成多个内聚的功能块。...组件迁移后,无法正确订阅事件 原因:angular(v4.0.0)中依赖注入,若在不同地方声明provider,则会创建不同的实例。...无法从router里获取RouteParams的API。 原因:angular(v4.1.1)中,使用ActivatedRoute的API获取路由信息。...使用angular-cli后无法自定义webpack的alias, 导致文件引入路径很长,如../../../shared/。...11.升级angular到(v4.1.1)版本后,等带动态src等属性触发error 原因:angular2启用安全无害化处理,为防止XSS等攻击,具体可参考官方文档安全。
// 文件描述类,处理打开的文件 private final FileDescriptor fd; // 文件的路径,如果该流是通过文件描述类创建的,该属性则为空 private...= null) { // 确保有文件的读取权限 security.checkRead(name); } if (name...== null) { // 文件路径为null,抛出空指针异常 throw new NullPointerException(); }...= null) { security.checkRead(fdObj); } // 文件描述符对象属性的赋值 fd = fdObj...{ return readBytes(b, 0, b.length); } // 读取b.length数量的字节,并从字节数组b的off下标位置开始填满b数组
最近在用Angular2,需要有一个上传文件的功能,但是又不想用库,所以直接用原生的input file 标签。...于是在es6里找了下有files属性的类型,是HTMLInputElement类型。于是就强制它转换成这个类型。...const uploadsFile=document.getElementById(name).files[0]; 结果还是不行,最后改成了先转换类型再调用属性就可以了...HTMLInputElement>document.getElementById(name); const file = uploadsFile.files[0]; 后面发现这种方式好像有点愚蠢,于是换了一个方法,用angular2...let upload = document.querySelector(selectorName); upload.value = null; 不知道有没有更好的方法
不过还好,经过这一段时间的倒腾,好歹把Angular2的东西稍微消化了一点,相比啥都不会,也算是有点收获吧。 基础配置 刚学习Angular2的时候,是照着他的中文文档上来的。...); 选择一个合适的IDE,我选择的是WebStorm; 这样基本上就算是搭好了Angular2简单的开发环境。...包括属性绑定、事件绑定、插值绑定以及双向绑定,主要用于组件内的变量在页面中的显示以及页面等。 服务。这包括两方面,一个是访问RESTFUL的服务,另一个是用来保存本地变量的。...但是,用测试环境你会发现项目非常的巨大,一个啥依赖都没有的'Hello world'就足足有3MB的大小,这显然是用户无法接受的。 那么为什么他会有这么大呢?...但是他也有很多的缺点,Angular2文档中列举了下面几点: 渲染得更快; 需要的异步请求更少; 需要下载的Angular框架体积更小; 提早检测模板错误; 更安全; 于是,Angular2又提出了一个新的编译方法叫
带着这两个问题,我将简要分析一下React、Angular1、Angular2及Vue的实现机制。 React Virtual DOM ?..._updateBatchNumber == null) { component....当数据变化时,Angular2从根节点往下遍历进行更新,默认Angular2深度遍历数据,进行新老数据的比较来决定是否更新UI,这点和Angular1的脏值检测有点像,但是Angular2的更新没有副作用...Zone.js Angular2同Angular1一样都是直接操作数据的,框架都无法直接感知数据的变化,只能在特定的时机去做批量更新。...但是对于异步方法,例如 function foo() { bar(); } setTimeout(foo); baz(); 我们无法知道foo是什么时候开始执行和结束,因为它是异步的。
IO 资源不属于内存里的资源,垃圾回收机制无法回收该资源,所以应该显式关闭文件 IO 资源。...int read(byte[] b, int off,int len) 将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。...如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。 int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。...存到数组cbuf中,从off处开始存储,最多读len个字符。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。...如果使用构造器FileOutputStream(file,true),则目录下的同名文件不会被覆盖,在文件内容末尾追加内容。 在读取文件时,必须保证该文件已存在,否则报异常。
会报错 FileWriter fw = null; try{ //可能会产出异常的代码 fw = new FileWriter...,fw的默认值就是null,null是不能调用方法的,会抛出NullPointerException,需要增加一个判断,不是null在把资源释放 if(fw!...=null){ try { //fw.close方法声明抛出了IOException异常对象,所以我们就的处理这个异常对象...使用属性集存储数据,遍历属性集中的数据 Properties集合中的方法 package com.itheima.demo07.Prop; import java.io.FileOutputStream...把硬盘中保存的文件(键值对),读取到集合中使用 属性列表中每个键及其对应值都是一个字符串。
int read(byte[] b,int off,int len) 将输入流中最多len个数据字节读入byte数组。尝试读取len个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。...如果已到达流的末尾,则返回-1。否则返回本次读取的字符数。 int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。...存到数组cbuf中,从off处开始存储,最多读len个字符。如果已到达流的末尾,则返回-1。否则返回本次读取的字符数。...如果流使用的构造器是:FileWriter(file,true) 不会对原有文件覆盖,而是在原有文件基础上追加内容。 读取文件时,必须保证文件存在,否则会报异常。...除了当前Person类需要实现Serializable接口之外,还必须保证其内部所属性也必须是可序列化的。
序 对后端开发来说,前端是神秘的,眼花缭乱的技术,繁多的框架,出名的不出名的好几百种,看是“繁荣”,其实显得杂乱无章,但是我们在做开发的时候,技术选型还是主流的那么几个:浅析angular,react,...React缺点: Web Componet的MVC分离不够彻底。 JSX描述的页面模板与JS代码没有办法完全分开。 无法接受代码的同时还夹个HTML代码这样原始的方式。...数据的传递不够直接还有一堆乱七八槽的属性 Android与IOS的代码不够一致 核心太小,一堆补充的库 Angular2的优点: 1、推荐TypeScript而不是原生的Javascript 2、类库特别多...,概念也是特别多 3、体量大 4、成熟度相对偏低,版本2才刚发布 5、不兼容1.x 6、Router还不成熟 综合以上我最终决定选择Angular2作为我前端开发的首选框架。...Angular2快速安装与入门 安装angular-cli npm install -g angular-cli 创建项目 ng new PROJECT_NAMEcd PROJECT_NAMEng serve
接口超时日志排查分析-BeanUtils对象复制6秒及类型不一致复制异常,复制null属性被覆盖解决,常见Bean拷贝框架的性能对比 1.接口超时日志排查分析-BeanUtils对象复制6秒 1.查询日志命令...BeanUtils.copyProperties(req,orderReqVO); 请求 req= json串 4.类型不一致复制异常,复制null属性被覆盖解决demo package...BeanUtils对部分属性不支持null,具体如下: a. java.util.Date类型不支持,但是它的子类java.sql.Date是被支持的。...java.util.Date直接copy会报异常; >> 验证不会 b. Boolean,Integer,Long等不支持,会将null转化为0; >> 验证不会 c....因此慎用属性转换工具,如果可能建议自定义转换类,使用 IDEA插件自动填充,效率也挺高, A 或 B 中任何属性类型不匹配,甚至删除一个属性,编译阶段即可报错,而且直接调用 get set 的效率也是非常高的
= null ?...此时流中只剩余1个字节,根据API说明,读取数组长度(2)个字节到数组中,但接下来已经无法继续读取2个字节了, 是否就应该停止了?...IOException; 那么我们查看FileInputStream的父类InputStream,发现有关于这个方法的实现, 我们现在考虑第三次读取的时候方法执行情况,此时b是[51,52].off...且读取到了文件的末尾,因此第4次执行的时候到int c=read()方法时就已经返回-1,并没有替换数组中的值了 public int read(byte b[], int off, int len...{ if (b == null) { throw new NullPointerException(); } else if (off < 0
本期介绍 本期主要介绍字节流、字符流、IO异常、属性集 文章目录 第一章 IO概述 1.1 什么是IO 1.2 IO的分类 1.3 IO的流向说明图解 1.4 顶级父类们 第二章 字节流 2.1 一切皆为字节...FileWriter类 构造方法 基本写出数据 关闭和刷新 写出其他数据 第四章 IO异常的处理 JDK7前处理 JDK7的处理(扩展知识点了解内容) JDK9的改进(扩展知识点了解内容) 第五章 属性集...void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。...关闭和刷新 因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中。但是关闭的流对象,是无法继续写出数据的。如果我们既想写出数据,又想继续使用流,就需要flush 方法了。...当我们单纯读或者写文本文件时 使用字符流 其他情况使用字节流 第四章 IO异常的处理 JDK7前处理 之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch.
[off]开始的位置存储 每次最多读取len个字符 返回实际读取的字符个数。...b中 每次最多读取b.length个字节 返回实际读取的字节个数 如果已经到达流末尾,没有数据可读,则返回-1 public int read(byte[] b,int off,int len):从输入流中读取一些字节数...,并将它们存储到字节数组 b中 从b[off]开始存储,每次最多读取len个字节 返回实际读取的字节个数 如果已经到达流末尾,没有数据可读,则返回-1 public void close() :关闭此输入流并释放与此流相关联的任何系统资源...,那么如果该属性也要序列化的话,也要实现Serializable 接口 该类的所有属性必须是可序列化的。...final声明的常量一旦赋值就不能修改,那么null不会空指针异常吗? 这三个常量对象为什么要小写?final声明的常量按照命名规范不是应该大写吗? 这三个常量的对象有set方法?
//实际读取的字节数是以整数形式返回。此方法将阻塞,知道输入数据为止可用,检测到文件结尾,或抛出异常。 //如果b的长度为0,则不读取任何字节,返回0。...//尝试尽可能的读取len长度的byte,但是可能读取较小的长度内荣,返回的是实际获取到的数据长度。...public int read(byte b[], int off, int len) throws IOException { if (b == null) {...public void write(byte b[], int off, int len) throws IOException { if (b == null) {...io 操作中的‘输入’和‘输出’是不可靠的,发生的异常是不受程序控制。
】 FileReader类 构造方法 读取字符数据 字符输出流【Writer】 FileWriter类 构造方法 基本写出数据 关闭和刷新 写出其他数据 IO异常的处理 JDK7前处理 JDK7...abstract void write(char[] cbuf, int off, int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。...void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。 void flush()刷新该流的缓冲。...关闭和刷新 因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中。但是关闭的流对象,是无法继续写出数据的。如果我们既想写出数据,又想继续使用流,就需要flush 方法了。...当我们单纯读或者写文本文件时 使用字符流 其他情况使用字节流 IO异常的处理 JDK7前处理 之前的练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch...finally
+it.next())会发生上述异常。...(类型转换异常)问题转移到编译时期; **避免了强制转换的麻烦 (4)什么时候定义泛型?...static Properties getProperties() 确定当前的系统属性 static String getProperty(String key) 获取指定键指示的系统属性...枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。 枚举可以让编译器在编译时就可以控制源程序中填写的非法值, 普通变量的方式在开发阶段无法实现这一目标。...int read(byte[] b, int off, int len) 从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
一、字符输入流(Reader) 1、Reader类概述 ①是抽象类(抽象类是无法实例化对象的,用其子类); ②是所有字节输出流最顶层的父类; ③定义了一些子类共性的成员方法; ④重点研究子类InputStreamReader...str) 写入字符串; ⑦void write(String str, int off, int len) 写入字符串的某一部分; 3、FileWriter类 字符输出流的作用: 把内存中字符数据写入到文件中...=null) {//若之前就失败,则fileWriter为空,会出现空指针异常,加个判断 try { fileWriter.close...}catch(异常变量 变量名){ //异常的处理逻辑 } 2、JDK9 JDK1.9中try中可以传入流对象。...(异常变量 变量名){ //异常的处理逻辑 }
int read(byte[] b, int off,int len) 将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。...如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。 int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。...存到数组cbuf中,从off处开始存储,最多读len个字符。 如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。 详解:共有的方法 int read() 读取单个字符。...将流中的数据读到数组中 4、关闭资源 写文件三步走: 1、创建流对象 2、写入数据 3、关闭资源 需要注意的是 在读取文件时,必须保证该文件已存在,否则报异常。...则不会创建文件,而是会去读取一个已经存在的文件, 如果读取的文件不存在则会出现异常。 如果模式为rw读写。 如果文件不存在则会去创建文件,如果存在则不会创建。
领取专属 10元无门槛券
手把手带您无忧上云