为什么UTF-8没有字节序的问题呢?个人看法,因为UTF-8是变长的,由第一个字节的头部的0、110、1110、11110判断是否需后续几个字节组成字符,使用Big endian易读取处理,反过来不好处理,因此强制用Big endian 其实感觉UTF-16可以强制规定用Big endian;但这其中历史问题 。。。5 URI概念的简单介绍
- 既然有了java.io来操作资源流;但是对于网络的资源,该怎么打开,怎么定位呢?答URI-URL
- URI全称是Uniform Resource Identifier 统一资源标识符
- 通俗说,就是一个类似身份证号码的字符串,只不过它是用来标识资源(如:邮件地址,主机名,文件等)
- URI 具有特定的规则: [scheme]:[scheme-specific-part][#fragment] 进一步细入划分可表示为[scheme]:[//authority][/path][?query][#fragment],其中模式特定部分为authority和path、query;而authority可以看做域名,如www.baidu.com终极细分则是[scheme]:[//host:port][/path][?query][#fragment],和日常见到的地址链接一模一样了
- 模式特定部分(scheme-specific-part)的形式取决于模式,而URI的常用模式如下 ftp:FTP服务器file:本地磁盘上的文件http:使用超文本传输协议mailto:电子邮件的地址telnet:基于Telnet的服务的连接Java中还大量使用了一些非标准的定制模式,如rmi、jar、jndi、doc、jdbc等
- 在java中URI抽象为java.net.URI类,下面列举几种常用构造方法
//根据str生成URIpublic URI(String str) throws URISyntaxExceptionpublic URI(String scheme, String authority,String path, String query, String fragment)throws URISyntaxExceptionpublic static URI create(String str) //调用 URI(String str)public String getScheme()//获取模式public String getSchemeSpecificPart()//获取模式特定部分public String getFragment()//获取片段标识符//以上三个方法是通用的public String getAuthority() //授权机构,如www.baidu.compublic String getHost()//获取主机部分,如127.0.0.1public int getPort()//如8080public String getPath()//定位路径public String getQuery()//查询条件6 URL概念及与URL的区别
- URL全称是Uniform Resource Location,统一资源定位符
- URL就是URI的子集,它除了标识资源,还提供找到资源的路径;在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析,而URL类可以打开一个到达资源的流
- 同属URI子集的URN(统一资源名称),只标识资源名称,却不指定如何定位资源;如:mailto:clswcl@gmail.com就是一种URN,知道这是个邮箱,却不知道该怎么查找定位
- 通俗就是,URN告诉你有一个地方叫广州,但没有说怎么去,你可以搭动车,也可以搭飞机;URL会告诉你坐飞机去广州,而另一URL则说搭动车去
- URL的一般语法规则
协议://主机名:端口/路径?查询#片段[protocol]:[//host:port][/path][?query][#fragment]//基于URL模式构造URL实例public URL(String spec) throws MalformedURLException//其中file相当于path、query和fragment三个部分组成public URL(String protocol, String host, int port, String file) throws MalformedURLException//根据类加载器获取URLURL systemResource = ClassLoader.getSystemResource(String name)Enumeration<URL> systemResources = ClassLoader.getSystemResources(String name)URL resource = Main.class.getResource(String name)Enumeration<URL> resources = Main.class.getClassLoader().getResources(String name)public final InputStream openStream() throws java.io.IOExceptionpublic URLConnection openConnection() throws java.io.IOExceptionpublic final Object getContent() throws java.io.IOException7 Spring.Resource与Spring资源获取方式
- 讲到资源,就得提下Spring获取资源方式,常用的有两种 通过Resource接口的子类获取资源通过ResourceLoader接口的子类获取资源
- Spring.Resource 资源操作函数一览
//判断资源是否存在boolean exists(); ////返回当前资源对应的URL,不能解析则会抛出异常;如ByteArrayResource就不能解析为一个URLURL getURL() throws IOException;//返回当前资源对应的URIURI getURI() throws IOException;//返回当前资源对应的FileFile getFile() throws IOException;//返回对应的ReadableByteChanneldefault ReadableByteChannel readableChannel() throws IOException - 介绍下Resource相关子类的使用
- 1 FileSystemResource:通过文件系统获取资源
Resource resource = new FileSystemResource("D:/example.txt");File file= new File("example.txt");Resource resource2 = new FileSystemResource(file);
推荐阅读
-
梦见自己打蜈蚣是什么预兆 梦到自己打蜈蚣是什么意思
-
生活@春不养生夏易病,常喝一杯“养肝茶”,口臭消失了,体重悄悄降!
-
爆侃小哥|没想到蜀汉精锐全死了,夷陵之战打的有多惨?本以为死的都是小兵
-
思考小哥|根本黑不动,你都认识谁?,中国史上最完美的五位帝王
-
中年|日本为修建“死亡铁路”,逼30万人参与建设,死亡人数超10万!
-
挖贝网@客户出口萎缩、业绩下降,锦美股份2019年净利148.3万下滑44.07%
-
星族一枚|变速箱才会听话!,新车2000公里内这样踩油门
-
全新华硕ROG游戏本上架:八核i7-10870H RTX2060显卡
-
科学|宇宙环境那么危险,为什么只有太阳系很安全,科学家找到幕后功臣
-
海口秀英区原区长黄鸿儒滥用职权致国家损失7.67亿元
-
文娱马后炮PK赛事变成刷装备的活动,梦幻西游:新手比武冠军全是五开
-
幽美塔罗|幽美塔罗牌占卜爱情:国庆节后你能否转运?
-
这里的“扶贫房”墙砖一掰就碎,随时可能坍塌!地方政府为糊弄检
-
-
-
里尚七七本人|二房最悲伤,超莲窦骁穿情侣装,奚梦瑶却缺席,全家送别赌王遗体
-
人民网-人民日报|管理成闭环 使用更规范(小康路上绿色力量)
-
基民|基民懵了!机构也玩高抛,市场大涨引发31亿资金出逃指数ETF,更有份额刚创新高的芯片ETF被狂抛
-
娘娘种草记针织外套搭配牛仔裤,身材超吸睛,女神祝绪丹现身机场
-
中央纪委国家监委网站|四川警察学院原副院长卓义才被开除党籍和公职