第十周课程总结

输入输出型变换大小写

(一)实验代码:

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()方法获得文件的大小,注意同时要类型转换。
原文地址:https://www.cnblogs.com/huangnuocheng/p/11777706.html