CSDN JAVA随笔 No.1

今天是开学的No.1,新学期的开始,注定要和往常一样发誓这学期好好学,但不知道这次会持续多久,希望长一点吧,亦或者是永远……

      第一节永远是那么兴奋,学的内容却不是那么简单。《Java数据流与文件的操作》,终于告别了一部分太过抽象的名词,开始了我一直期盼的实际操作,虽然它不太容易掌握,但我会进我的全力的!!!

      流,在我的感觉里,流就是电脑数据与程序之间(虽然程序也是数据,但是我感觉程序是有序的数据,对错与否,纯属个人理解)一种交互,数据在经过程序之后就发生了改变,输入的数据就是输入流(InputStream),输出的数据就是输出流(OutputStream),输入流只能读不能改写,输出流只能写不能读,比如从键盘读取数据、向屏幕中输出数据、从文件中读或者向文件中写数据、在一个网络连接上进行读写操作等。但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个数入流,而屏幕则只是一个输出流。缓冲流(buffered stream),为提高数据的传输效率,通常使用缓冲流(buffered stream),即为一个流配有一个缓冲区(buffer),一个缓冲区就是专门用于传送数据的一块内存。

read方法为不带参数,一个一个字节传,若返回-1,则表明当前读取位置已经到达流的末尾。

例如:int n;

While((n=fis.read())!=-1)

{ //数据处理}

FileInputStream用于顺序访问本地文件。它从父类InputStream中继承read()、close()等方法对本机上的文件进行操作,但不支持mark()方法和reset()方法。

FileOutputStream类用于向一个文件写数据。它从超类OutputStream中继承write()、close()等方法。下面是实例应用:

      利用文件流将read.txt中的数据读出并且进行格式化后写入result.txt文件(read.txt里边为一个无序数列)。

import java.io.*;//导入io包

public class io1 {

   public static void main(String[] args){

      try{

         FileInputStream fis = new FileInputStream("read.txt");//建立fis类读出read.txt的文档

         FileOutputStream fos = new FileOutputStream("result.txt");//建立fos类写result.txt的文档

      int n = fis.available();//创建整数n,把fis读出的数据传到n

byte[] b = new byte[n];//建立数组b,把n中的每个字节的传入,组成数组

       for(int i=0;i<b.length;i++){                                if(fis.read(b) !=-1){//如果read返回-1,表示已至数据末尾

                   System.out.println(new String(b));

         }//这个if语句是输出read.txt的内容, 不用写,仅供参考 

                fos.write(b[i]);//把数据b写入fos(即result.txt中)       

                if((i+1)%4==0){

                   fos.write(" ".getBytes());

                }//每4个字符输出一个空格

               if((i+1)%40==0){

                   fos.write("\n".getBytes());

                }//每40个字符换行

            } 

         fis.close();关闭fis

         fos.close();关闭fos

          }catch(Exception e){

      }    

   }

}

(2011/8/29)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值