实验代码

package 第十周;
import java.io.*;

public class Dome2 {
    public static void main(String[] args) throws Exception {
        File f=new File("e:"+File.separator+File.separator+"小猪佩奇.txt");
        OutputStream out=new FileOutputStream(f);
        String str="to be or not to be that is the question";
        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);
            }
        }
        out.write(b);
        out.close();
        System.out.println(new String(b));
    }

}

运行截图:

设计思路:


使用File类操作文件,因为要用到File、Fileoutputstream、outputstream,所以直接用通配符表示import java.io.
创建新文件,这一步必须给出完整路径,并抛出异常;
实例化,准备字符串;
将字符串变成byte数组;
for循环输出数组;
用除以二取余法和ASCII区间判断奇数位的字母,if (i%2==0 && b[i]>='a' && b[i]<='z'),将它改为大写;
写入并关闭,输出到控制台。

课程总结:

Java Io中操作文件的类——File


使用java io时,老师讲过可以直接用*,简洁明了。
pathSeparator调用静态常量。

File的提示:

要注意操作会有延迟,日后在进行文件操作的时候一定要考虑到延迟的影响;
文件扩展名可有可无;
指定一个文件夹,直接使用mkdir方法就可以完成。

RandomAccessFile类的常用操作方法:


需要注意的是,如果使用了rw的方式声明,要写入的文件不存在,系统将自动进行创建。

字节流和字符流:

1、使用file打开一个文件
2、通过字节流或字符流的子类指定输出的位置
3、进行读或写操作
4、关闭输入或输出

字节流与字符流的区别:

字节流在操作的时候不会用到缓冲区,而字符流在操作时使用到缓冲区通过缓冲区再操作文件。

转换流————OutputStreamWriter类与InputStreamReader类:

(1)OutputStreamWriter:是Writer的子类,将输出的字符流变成字节流,即将一个字符流的输出对象变为字节流输出对象。
(2)InputStreamReader:是Reader的子类,将输出的字节流变成字符流,即将一个字节流的输出对象变为字符流输入对象。