第十周课程总结

 实验

1、实验代码

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class text {

    public static void main(String[] args) throws IOException {
        
        
        
        try {
            String str = "hello world";
            String s = "f:"+File.separator+"text.txt";
            
            File file = new File(s);
            FileOutputStream ops = new FileOutputStream(file);
            
            byte b[] = str.getBytes();
            for(int i=0;i<b.length;i++) {
                if (i%2==0 && b[i]>='a' && b[i]<='z') {
                     b[i]=(byte)(b[i]-32);
                }
            }
            ops.write(b);
            ops.close();
            System.out.println("经过更改后的内容为:"+new String(b));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }
        
  }
}

2、运行结果截图

 

 

 

 总结:这周作业的难度并不大,但还是继续努力。

学习总结

1、字节流

1)字节输出流:OutputStream

                                                                                                                           OutputStream类的常用方法

 

 

 :要想使用以上方法,必须使用子类实例化,此时使用FileOutputStream子类,此类的构造方法如下:

public FileOutputStream(File file) throws FileNotFoundException 

 

2)追加新内容

public FileOutputStream(File file,boolean append) throws FileNotFoundException

:在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容,反之覆盖。

 

3)字节输入流:InputStream

                                                                                                                            InputStream类的常用方法

 

 

 :要想使用以上方法,必须使用子类实例化,此时使用FileInputStream子类,此类的构造方法如下:

public FileInputStream(File file) throws FileNotFoundException 

 

2、字符流

1)字符输出流:Writer

                                                                                                                Writer类的常用方法

 

 

 :要想使用以上方法,必须使用子类实例化,此时使用FileWriter子类,此类的构造方法如下:

public FileWriter(File file) throws IOException 

 

2)使用FileWriter追加文件的内容

public FileWriter(File file,boolean append) throws IOException 

:在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容,反之覆盖。

 

3)字符输入流:Reader

                                                                                                                                    Reader类的常用方法

 

 

  :要想使用以上方法,必须使用子类实例化,此时使用FileReader子类,此类的构造方法如下:

public FileReader(File file) throws FileNotFoundException 

 

3、字节流与字符流的区别

字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的。

字符流在操作的时候是使用到缓冲区的。

 

4、字节-字符转换流

在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。

OutputStreamWriterWriter的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象

InputStreamReaderReader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象

 

5、内存操作流

1)字节内存流

a、内存字节输入流:ByteArrayInputStream

                                                                                              ByteArrayInputStream类的主要方法

b、内存字节输出流:ByteArrayOutputStream

                                                                                                          ByteArrayOutputStream类的主要方法

 

 

 

6、管道流

管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:

public void connect(PipedInputStream snk) throws IOException 

 

7、打印流

在整个IO包中,打印流是输出信息最方便的类,主要包含:

字节打印流:PrintStream

字符打印流:PrintWriter

打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。

                    PrintStream类的常用方法

 

 

 

 8、使用打印流进行格式化

在JDK 1.5之后,JAVA又对PrintStream类进行了扩充,增加了格式化的输出方式,直接使用printf()方法就可以完成操作,但是在进行格式化输出的时候需要指定其输出的数据类型。

                                    格式化输出

 

 

 

 9、System对IO的支持

System表示系统类,实际上在java中System类也对IO给予了一定的支持。

                                                                                            System类的常量

 

 

 

 10、输入、输出重定向

通过System类也可以改变System.in的输入流来源,以及System.outSystem.err两个输出流的输出位置。

                                                                    System类提供的重定向方法

 

posted @ 2019-11-02 10:24  ღ阿ོ茶꧔ꦿ༊  阅读(163)  评论(0编辑  收藏  举报