io--最后一次

每一次写流,都要看一边io的api,不是叔不会,只是记不住....希望这是最后一次

File类      在我映像里我一直通过File来创建文件...作为面向对象的程序猿,我认为File代表文件,而还有个FilePath之类的生物代表File的路径
1.File与FilePath
稍微看下api我就知道我错了,but why?难道我面向错了?迷茫的时候上度娘(java File),第一篇看见如下栗子


次奥,你逗我,叔赖好知道后缀只是给人看的,程序是靠协议/解析来决定读取的生物种族的,比如:
这或是图片(至少博客园的上传不是通过后缀来判断的)这货是快捷方式这货是pdf
或许到这个时候你就跟叔一样,秒懂,来个简单的测试

原来如此,所以我们可以假设本身操作系统就没法再路径上区分文件,那File类与FilePath类就很难或者没有必要再进行区分了,一个Path既可以代表File也可以代表FilePath--

2.创建File与api
       看到创建的时候,我又秒懂了,他们在构造函数中区分File+FilePath或者相对什么路径+其他路径(就是这么个意思),只有3点有意思
1.File提供的parent路径名字符串和child非常爽,下次使用的时候可以吓小伙伴们一跳,要知道,他们还是new File(parent+path),来实现的
2.File使用parent路径名字符串和child来构造,那么这个File的getParent() 是什么呢?  试试吧,简单的名字重复而已,没太大歧义,跟其他的一样
3.isAbsolute很有意思,根据判断方式比较独特,其他的类似,这些东西可以拿来虐菜

new File("F:").isAbsolute():false
new File("F:\\").isAbsolute():true

3.特殊字符
      叔在window下创建文件的时候多次被提醒特殊字符不可作为文件名...不过通过程序的话,说不定就可以,反射什么的跟这个不是很像吗?(破坏封装)而且双引号,转意符的存在应该也不会再有歧义什么的了,但是我失败了,你都不用操心绕过判断什么的,直接不让创建....
      首先假设可视化操作系统还是得靠命令执行,或许通过cmd创建几个文件基本上就确定这些特殊字符
1.\     :路径分割符...不是转义符,如果真能转移,我觉得就能加入特殊字符了
2./     :同上...传说中的容错写法
3.*  ? :通配符,window右上角的搜索就可以用这个,无解
4.<>| :重定向输入和输出数据流的可以开头的操作符...叔一天毛都没干,光在cmd上玩这个,弄完感觉智商被压制了....
5.:     :window下盘符关键字(前面说有意思就在这,window下绝对为毛路径不用:来决定?反正不咋用的方法,以后慢慢理解,至于linux,你懂得)
6."     :允许空格命名的后遗症,换句话说,空格和上面的特殊服都可以阻止/改变命令,但我们需要空格不能时...

这些应该算操作系统的解析,或许搞个操作系统就可以完全无视这些逗比了

io--最后一次,布布扣,bubuko.com

时间: 2025-01-07 12:23:29

io--最后一次的相关文章

10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包

- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包 - 扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html  - tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html  # 10.6 监控io性能 ![mark](http://oqxf7c508.bkt.clouddn.com/b

JavaSE8基础 File createNewFile 在一个不存在的文件夹中创建文件时 会抛IO异常(绝对路径)

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) information: 在编写代码时,javase8文件夹的情况截图. code: package jizuiku0; import java.io.File; import java.io.IOException; /* * @version V17.09 */ public class FileDemo_1 { public

Performance Monitor4:监控SQL Server的IO性能

SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Application创建IO请求,到Disk完成IO请求的时间延迟.如果物理Disk不能及时完成IO请求,跟不上请求负载的速度,那么SQL Server就容易出现性能问题.SQL Server内部在执行一些特定的操作时,会和Disk做读写交互,这也会影响物理硬盘响应SQL Server的IO请求的性能,使查询进程处

对IO流的操作(文件大小,拷贝,移动,删除)

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.SequenceInputStream; class LjyFileClass { /*LjyFileClass工具类使用需知: * * 1.计算

java IO之输入流——InputStream

java的基本输入流是java.io.InputStream,该抽象类定义了输入流的基本输入操作方法,实现自该抽象类的子类都有定义自己的数据源,例如ByteArrayInputStream的构造函数指定了ByteArrayInputStream输入流的数据源必须是一个字符数组.这就可以有多种不同的数据源,包括:字符数组.String对象.文件."管道".一个由其他种类的流组成的序列... 1 public ByteArrayInputStream(byte buf[]) {} 2 3

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

Linux 性能监控 : CPU 、Memory 、 IO 、Network

一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70% 上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的 可运行队列:每个处理器的可运行队列<=3个线程 2.监控工具 vmstat $ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --s

《linux 内核全然剖析》 include/asm/io.h

include/asm/io.h #define outb(value,port) __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) //宏定义outb用汇编实现了在端口地址port处写入值value //使用的寄存器是al,一个byte长度,而端口port使用的是2byte长度地址来标记的寄存器,注意这里寄存器的使用 #define inb(port) ({ unsigned char _v;

Python有了asyncio和aiohttp在爬虫这类型IO任务中多线程/多进程还有存在的必要吗?

最近正在学习Python中的异步编程,看了一些博客后做了一些小测验:对比asyncio+aiohttp的爬虫和asyncio+aiohttp+concurrent.futures(线程池/进程池)在效率中的差异,注释:在爬虫中我几乎没有使用任何计算性任务,为了探测异步的性能,全部都只是做了网络IO请求,就是说aiohttp把网页get完就程序就done了. 结果发现前者的效率比后者还要高.我询问了另外一位博主,(提供代码的博主没回我信息),他说使用concurrent.futures的话因为我全

文件拆分成指定大小(IO流)

1 package stream; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.util.Arrays; 8 9 public class TestStream { 10 11 public static void main(String[] args) { 12 i