JAVA.IO的学习日记


1.JAVA中的File类是IO包中唯一代表文件本身信息的类,不是文件中的内容,可以利用File类中的方法对文件进行创建、删除、获取文件信息等操作。其中createNewFile()方法会抛出一个异常,需要用try和catch语句将其包裹起来。


2.RandomAccessFile 提供的方法可以从文件的任意位置对文件进行访问,在读取等长记录文件的时候可以节省很多时间,该类只能操作文件,不能访问设备;该类有两种构造方 法,new RandomAccessFile(f,"rw"),f为需要访问的文件名称,r和w分别为以读或者写方式打开;利用skipBytes(int i)方法可以跳转i个字节;写入整形数据时用writeInt()方法;字符串调用.trim()方法可以去除字符串中的空格;想文件中写入中文字符时, 用writeChars()方法,读中文字符时用readChar()方法;


3.InputStream类的int read()方法可以一次读取一个字节的内容,当返回值为-1时表示读取结束;int read(byte[]b)方法一次读取一个字节数组的内容,返回值表示实际读取到的字节长度;int read(byte[] b,int off,int len)方法可以从输入流中读取len个长度的字节数据从下标off开始依次存放到字节数组b中,返回值表示读取到的字节长度;包装类中long skip(long n)方法可以跳过n个字节的长度,返回的值是跳过的长度;int available()方法可以检查流中有无数据,返回值为当前流中的可读字节数;当程序要求实时读取文件中的数据时,可创建一个线程调用read方法, 这样可节省CPU资源。void mark(int readlimit)用于包装类中,用于标记当前位置;void reset()用于让指针返回mark方法设定的位置;JVM只会回收程序产生的垃圾,不会回收程序运行时系统产生的一些资源。所以需要调 用.close()方法从程序内部关闭因运行而使系统产生的资源。InputStream类的输入流是对于程序而言的,也就是从外部向程序中输入。


4.OutputStream类是相对于外部文件的输出流,该类的void write()方法可以向外部文件写入数据;void flush()方法可以将内存缓冲区中的数据清空并立即写入到外部设备中;


5. FileInputStream FileOutputStream

       FileInputStream FileOutputStream 类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名。

       创建 FileInputStream 实例对象时,指定的文件应当是存在和可读的。创建 FileOutputStream 实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清除。

       对同一个磁盘文件创建 FileInputStream 对象的两种方式:

   1)、   FileInputStream inOne = new FileInputStream(“hello.test”);

   2)、   File f = new File(“hello.test”);

FileInputStream inTwo = new FileInputStream(f);

       创建 FileOutputStream 实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开的文件。

       此处的输入与输出是相对程序而言,而非相对文件而言。

       要将 A 文件的内容写入 B 文件,在程序代码中,是用输出类对象,还是用输入类对象来连接 A 文件并完成对 A 文件的操作呢?

 

6. Reader Writer

       Reader Writer 是所有字符流类的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据。

       二进制文件和文本文件的区别。(文本文件是二进制文件的特例,如果一个文件专用于存储文本字符而不包含字符之外的其他数据,就是文本文件,其它的都是二进制文件)

       程序中的方法区别:

FileOutputStream out = new FileOutputStream("hello.txt");

out.write("www.it315.org".getBytes());

FileOutputStream 类中的 write() 方法将自动调用 flush() 方法刷新内存缓冲区,可以不用 close() 方法,即可向文件写入数据。并且输入的字符要用 getBytes() 方法转换成字节。

FileWriter out = new FileWriter("hello2.txt");

out.write("www.it315.org");

out.close();

FileWriter 中必须用 close() 方法清空内存缓冲区以写入数据, write() 方法可以直接写入字符。


7.PipedInputStream类和PipedOutputStream类用于在两个线程之间建立管道通信;一个线程可以使用PipedInputStream类从另一个线程使用的PipedOutputStream类中读取数据;

你可能感兴趣的:(java,jvm,编程,F#)