zoukankan      html  css  js  c++  java
  • 第十周课程总结

    第十周课程总结

    流的分类

    1.Java的字节流
       InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
    2.Java的字符流
      Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。
    InputStream,OutputStream,Reader,writer都是抽象类。所以不能直接new 
    
    

    字节流

    1、当把数据传到程序中的操作叫输入,用InputStream类。
    2、当把数据从程序中传出的操作叫输出,用OutputStream类。
    

    字符流

    1、字符输出流:Writer。
    2、字符输入流:Reader。
    

    字节-字符转换流

    OutputStreamWriter和InputStreamReader
    在整个IO包中,实际上就是字节流和字符流,但是除了这两个流之外,还存在一组字节流-字符流的转换类。
    •OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节流的输出对象  
    •InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
    
    在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
    文件中换行为:
    。
    

    FileInputStream 常用的构造方法主要有如下两种重载形式。

    FileInputStream(File file):通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
    FileInputStream(String name):通过打开一个到实际文件的链接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
    

    1 、要格式化输出: PrintStream, PrintWriter

    flush(): 刷新缓冲区
    close(): 关闭流对象–>先刷新,再关闭

    字节流与字符流的区别

    
    字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
    
    字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,
    说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容。
    

    转换流

    OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。
    
    字节--->字符 : 看不懂的--->看的懂的。  需要读。输入流。 InputStreamReader
    
    字符--->字节 : 看的懂的--->看不懂的。  需要写。输出流。 OutputStreamWriter
    

    内存流

    字节数组:
    ByteArrayInputStream
    ByteArrayOutputStream
    
    字符数组
    CharArrayReader
    CharArrayWriter
    
    
    字符串
    StringReader
    StringWriter
    

    管道流

    PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流。这个两个流必须同时使用。

    打印流

     一:System类当中的方法: 
    System.in;  标准的输入流: 默认是键盘录入
    System.out; 标准的输出流: 默认是输出到控制台。 
      
    System.setIn(InputStream in); 改变来源。 
    System.setOut(PrintStream ps);  
    
    
    二:PrintStrea PrintStream(File file) 
    创建具有指定文件且不带自动行刷新的新打印流。 
    PrintStream(File file, String csn)  
      
    PrintStream(OutputStream out) ; 
    PrintStream(OutputStream out, boolean autoFlush) ;自动刷新。 
     PrintStream(String fileName) 
    

    把奇数位上的小写字符换成大写。

    package 二;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    
    public class X {
    	public static void main(String[]args)throws Exception{
            File f=new File("d:"+File.separator+"test.txt");
            OutputStream out=null;
            out =new FileOutputStream(f);
            String str="helloworld";
            byte a[]=str.getBytes();
            for(int i=0;i<a.length;i++) {
                if(i%2==0&&a[i]>='a'&&a[i]<='z') {
                    a[i]=(byte)(a[i]-32);
                }
            }
            out.write(a);
            out.close();
        }
    
    }
    

    这个难度不大,以为老师已经讲过了,这题我是把老师讲过的输出奇数位上的字符,和把字符换成大写输出两个问题结合到一起了。

    这就是我本周的学习内容总结。

  • 相关阅读:
    Hia~hia~
    细节与销售
    敛财术
    酒井法子
    买了新手机NOKIA E71
    观《拉贝日记》
    居然不配套
    2009上海最新“四金”及个人所得税计算(器)
    有好听点的新歌么?
    我家乌龟终于下蛋了!
  • 原文地址:https://www.cnblogs.com/neir/p/11771753.html
Copyright © 2011-2022 走看看