第十周课程总结
输入输出型变换大小写
(一)实验代码:
package lager;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) throws Exception {
File f = new File("d:"+File.separator+"txt.txt"); //声明File对象
OutputStream out = null; //准备好输出的对象
out = new FileOutputStream(f); //通过对象多态性,进行实例化
Scanner in = new Scanner(System.in); //输入
System.out.println("请输入:");
String str = in.nextLine();
byte b[] = str.getBytes(); //将字符串转换为byte数组
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(); //关闭输出流
}
}
实验结果:
package lager;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class hellow {
public static void main(String[] args) throws Exception {
File localFile = new File("d:"+File.separator+"txt.txt"); //声明File对象
FileInputStream ins = new FileInputStream(localFile); //声明FileInputStream对象
int countLen = ins.available(); //从ins中可以获得字符的数目
byte[] m_binArray = new byte[countLen]; //定义一个byte数组,长度为 countLen
ins.read(m_binArray); //从文件中读取数据到m_binArray数组
for(int i=0;i<m_binArray.length;i++) {
if (i % 2 == 0 && m_binArray[i] >= 'a' && m_binArray[i] <= 'z') { //判定条件
m_binArray[i] = (byte) (m_binArray[i] - 32);
}
}
OutputStream out = null; //准备好输出的对象
out = new FileOutputStream(localFile); //通过对象多态性,进行实例化
out.write(m_binArray); //将内容输出,保存文件
ins.close(); //关闭输出流
}
}
实验结果:
总结:
首先我先总结一下这次作业的感受:
这次作业比较简单,大部分的思路和操作老师都讲了。
字节流与字符流
字节流的操作:
1)输入:inputStream,
2)输出:outPutStream;
字符流的操作:
1)输入主要使用:reader类。
2)输出主要使用:write类。
实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承)
注意:
1) IO操作属于资源操作,对于资源操作,操作最后必须关闭,否则有可能出现未知错误。
2)因为FielOutputStream有异常,wire()方法也有异常,为了节省操作,可以在主方法抛出异常,不处理
3)输出字符串:可以先用方法 getBytes()一次性读取字符串到字节数组中,然后再把字节数组输出。
4)OutputStream的实例对象调用write(byte []b)方法,把数组输出。
5)InputStream通过子类,利用多态性,向上转型,实例化对象。
6)InputStream对象调用read(byte b[])方法,把File中的内容读取给b[]数组。
7)在操作时候,如果文件本身不存在,就会为用户自动创建新文件。在操作输出流的时候也可以使用write(int i)的方式写出数据。
8)定义一个byte类型的数组对象,用于读取从File类的指定文件的内容。
9) 如果要想知道文件大小,直接使用File类即可。f.length()方法获得文件的大小,注意同时要类型转换。