java吧 关注:1,257,382贴子:12,749,905

【上课】现在在上课。我把我课上的知识记录下来。

只看楼主收藏回复

今天将得是IO流


1楼2012-04-21 14:16回复
    文件的输入输出是考流(Stream)实现的,那么什么是流呢?
    可以理解成为:一组有序的,有起点和终点的动态数据**。
    也可以这么认为,流可以看成数据的导管,导管的一段为源段,另一段为目的端输出,我们不用考虑两端的数据如何传输,只需要想源输入数据,和目的端读取数据就可以。
    注意:
    流和文件的区别:
    文件是数据的静态存储,流是数据的传输的一种形态。


    2楼2012-04-21 14:20
    回复
      广告
      立即查看
      用IO 流读取文件的原理~!
      1、比如 如果想要将source.txt到target.txt。 那么就必修要先创造一个输入流类的对象,它负责对输入流的管理, 就是将source得数据放到导管(中转站)之中。然后在创造一个输出流。他负责他导管(中转站)中的数据放入目的地。输入流,输出流是连续不断的数据**。
      2、source.txt 称为IO源,那么 target.txt就是成为IO目标,统称节点流。特别注意的是输入流,输出流是相对程序而言,而不是相对文件而言。例如输入source.txt在程序中实际称为“输出流”。
      3、流按照处理数据单位可分为两种:字节流和字符流,字节流处理字节的输入和输出。例如使用字节流读取或者书写二进制数据,字符流为字符输入和输出处理提供了方便。在汉字处理。它比字节流更加高效。
      


      3楼2012-04-21 14:35
      回复
        实现字符流输入流类都是抽象Reader的子类,
        Reader的主要方法如下:


        4楼2012-04-21 14:39
        回复
          int read() 从源读取一个字符的数据,返回字符值
          int read(char b[]) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目,返回-1表示读取完毕
          void close() 关闭输入流


          5楼2012-04-21 14:42
          回复
            现在,我测试一下,使用Reader,来实现文件的读取。
            我在桌面创建一个文件 "Java吧的大神_求粉啊"
            然后在里面写内容"自从来了Java吧,哈哈哈哈哈哈哈哈哈哈哈哈哈"


            6楼2012-04-21 14:44
            回复
              package net.step3;
              import java.io.*;
              /**
              * Java IO流
              * @author "学着阿狸眯眼看浮云"
              *@Time 2012-4-21 14:43
              */
              public class TestIO1 {
              public static void main(String[] args) {
              Reader fr = null;
              int length = 0;
              char ch[] = null;
              try {
              //技巧:F:\杂七杂八\Java吧的大神_求粉啊.txt
              //1、创建字符输入流对象,负责读取路径下面的文件。
              fr = new FileReader("F:/杂七杂八/Java吧的大神_求粉啊.txt");
              //2、创建文件中转站,用来存放数据
              ch = new char[1024];
              //3、读取文件到ch数组
              length = fr.read(ch);
              //4、输出保存在ch中的数据
              System.out.println(new String(ch,0,length));
              } catch (FileNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
              } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
              }finally{
              //5、必须关系输入流
              if (fr != null) {
              try {
              fr.close();
              } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
              }
              }
              }
              }
              }
              


              7楼2012-04-21 14:53
              回复
                呵呵,我给Java吧的童鞋出了个题目。



                8楼2012-04-21 15:17
                回复
                  广告
                  立即查看
                  楼主是在培训还是、


                  来自手机贴吧9楼2012-04-21 15:25
                  回复
                    在培训呀,桑不起啊。。。***鸟的。。。。。书简单得要死。。


                    10楼2012-04-21 15:33
                    回复
                      package net.step4;
                      import java.io.*;
                      /**
                      *
                      * @author 学着阿狸眯眼望浮云
                      *@Time 2012 4-12 16:05
                      */
                      public class WriteDemo {
                      public static void main(String[] args) {
                      //要输出的内容。
                      String s = "Hello World";
                      //输出数据类。
                      FileWriter fw = null;
                      try {
                      //输出目标地址和名称。
                      fw = new FileWriter("d:\\hello.txt");
                      //开始写入。
                      fw.write(s);
                      } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      }finally{
                      try {
                      //关闭,
                      fw.close();
                      } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      }
                      }
                      }
                      }


                      11楼2012-04-21 16:08
                      回复
                        哈。又一只狐狸。。。
                        加油。。。


                        IP属地:重庆来自掌上百度12楼2012-04-21 16:19
                        回复
                          傻二又被封了。。。


                          13楼2012-04-21 16:28
                          回复
                            为什么要加“又”
                            = =


                            14楼2012-04-21 17:24
                            回复
                              广告
                              立即查看
                              是不是某个厨师也被封了。。。


                              IP属地:贵州15楼2012-04-21 19:25
                              回复