java编程思想阅读笔记(十)I/O系统(上)

原创 2012年03月26日 22:32:45
    又是好久没有更新了,在外面出差,还参加了个Nice公司的亚太区销售峰会,体会了些软件卖钱的理念,然后就是公司搞得气派与自己英文的太烂了。最后说书,这个书其实第一遍算是看个差不多了,慢慢的在把笔记补上,还是原来的话,仅仅看语法和体会一些用到的细节了,至于思想还是感受不到,没有真正的大的项目还是无法支撑的。
    从File类开始,到文件的读写控制来叙述。
   (1)File 文件或文件集名,抽象路径名,并且可以据此来查看文件的属性,同时,对象一旦建立则不能改变。
   (2)最初的I/O类:

   (3)java1.1中提供了兼容Unicode与面向字符的I/O功能类

    看些使用的例子:
    带缓冲的文件输入:
    BufferedReader in = new BufferedReader( new FileReader(stringFileName) );
    StringReader in = new StringReader( BufferedInputFile.read("") );
    基本的文件输出:
    PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter()));
    PrintWriter out = new PrintWriter(stringFileName);
    标准I/O,System.in out err以及重定向SetIn Out Err这里就不细说了。
   (4)新I/O nio
    首先是,实际上旧的I/O包已经使用nio重新实现过,因此不显式地使用nio也是用到了。
    FileChannel    ( FileInputStream FileOutputStream RandomAccessFile )
    FileChannel   fc = new FileOutputStream("").getChannel();
    fc.write();
    fc = new RandomAccessFile("").getChannel();
    其次是视图缓冲器一说:通过在同一个ByteBuffer上建立不同的视图缓冲器,将同一个字节序列翻译成short,int,float,long和double类型,相当于说是在同一个存储区域以不同的类型形式展现。
    最好是内存映射文件,我原来有篇文章简单说了下c++下的使用,意思很明显就是在磁盘上建立一块区域用来存放大文件(可能一下子无法装载进来,选择部分),用起来感觉都已经在内存中了,而不用进行文件的I/O操作。
    MappedByteBuffer out = new RandomAccessFile("").getChannel().map( FileChannel.MapMode.READ_WRITE,0,length()); 
   (5)文件加锁

    其实会和后面并发中的加锁类似(是一个共享竞争资源),可以使用trylock 或 lock对文件或者映射文件的部分加锁;后者是直接获取锁,如果无法获得而阻塞;前者是尝试获取锁,无法获得直接返回;还有可以设定些等待时间之类的。 

    后面下会主要说说序列化的。

版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

java编程思想阅读笔记(十)I/O系统(下)

补充下对象序列化的相关内容。至于XML读写之类的就不写了,无非也就是按照规定方式读写的东西。     对象的序列化将那些实现了Serializable(Externalizable)接口的对象转换成...

转载《Java编程思想》Java I/O系统章节阅读笔记

今天正好要写个小程序需要用到io操作,突然想起来java有个nio一直没用过,就找了点资料研究了一下,顺便做点笔记,以便日后查阅。 ---------------------------------...

java编程思想读书笔记 第十八章 java I/O系统(第五篇)

1. 压缩 压缩要注意的: 1)压缩类库是按字节方式而不是字符方式处理的; 2)尽管存在许多种压缩算法,但是Zip和GZIP是最常用; 3)Zip压缩和GZIP的区别:GZIP接口非常简单,适...

java编程思想读书笔记 第十八章 java I/O系统(第二篇)

1.添加属性和有用的接口FilterInputStream和FilterOutputStream是用来提供装饰器类接口的以控制特定输入流和输出流的两个类。FilterInputStream和Filte...

java编程思想读书笔记 第十八章 java I/O系统(第三篇)

1. 文件读写的工具 一一个很常见的程序化的任务就是读取文件到内存,修改,然后再写出。java I/O类库的问题之一就是:它需要编写相当多的代码去执行这些常用的工作–没有任何基本的帮助功能可以为我们...

java编程思想读书笔记 第十八章 java I/O系统(第四篇 新I/O)

新的I/OJDK1.4的java.nio.*包中引入了新的javaI/O类库,其目的在于提高速度,旧的I/O包已经使用nio重新实现过,以便充分利用这种速度提高。因此,即便我们不显示的使用nio编写代...

《Java编程思想》之I/O系统

1、Java中“流“类库让人迷惑的主要原因:创建单一的结果流,却需要创建多个对象。 2、使用层叠的数个对象为单个对象动态地、透明地添加职责的方式,称作“修饰器“模式。修饰器必须与其所修饰的对象具有相...

《Java编程思想第四版》笔记---18章(4) I/O 流式部分--管道流与对象流

管道流          管道流主要用于连接两个线程的通信。 管道流也分为字节流(PipedInputStream、PipedOutputStream)和字符流(PipedReader、...

《Java编程思想第四版》笔记---18章(2) I/O 非流式部分

非流式部分 File类       在Java语言的java.io包中,由File类提供了描述文件和目录的操作与管理方法。但File类不是InputStream、OutputStream或Read...

《Java编程思想第四版》笔记---18章(7) I/O 文件锁定,文件压缩

文件锁定 在同一个JVM中,共享资源的文件可以通过线程同步来确保访问的安全性,但是在不同的JVM或者Java线程和操作系统本地线程共同竞争一个共享的文件资源时,就必须通过对文件的锁定机制来确保,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)