实验代码
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的子类,将输出的字节流变成字符流,即将一个字节流的输出对象变为字符流输入对象。