第十周课程总结
一、判断奇位数,若为小写则转为大写
1.实验源码:
package main1; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; public class Test { public static void main(String[] args) throws Exception { File fi=new File("d:"+File.separator+"java"+File.separator+"test.txt");//声明对象 OutputStream out=new FileOutputStream(fi);//准备好一个输出对象 String str="hello world!!!"; 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));//输出更改后的内容 } }
2.实验结果截图
3.实验的过程和问题:
这道题的思路和部分代码老师在课堂上讲过,只是一个留给我们课后思考解决的问题,书上也有很多例题,所以写起来并不困难。由于没有具体的要求,就根据自己的理解写好了代码,首先准备好一个输出对象和一个字符串,再将字符串变为byte数组,再判断数组中奇数位是否为小写,是则改为大写,然后将数组写入到文件中去,同是将更改后的内容在控制台输出。
课程学习总结
1.字节流:
字节输出流:OutputStream
OutputStream类的常用方法
序号 |
方法或常量 |
类型 |
描述 |
1 |
public void close()throws IOException |
普通 |
关闭输出流 |
2 |
public void flush()throws IOException |
普通 |
刷新缓冲区 |
3 |
public void write(byte[] b)throws IOException |
普通 |
将一个byte数组写入数据流 |
4 |
public void write(byte[] b,int off,int len)throws IOException |
普通 |
将一个指定范围的byte数组写入数据流 |
5 |
public abstract void write(int b)throws IOException |
普通 |
将一个字节数据写入数据流 |
字节输入流:IntputStream
IntputStream类的常用方法
序号 |
方法或常量 |
类型 |
描述 |
1 |
public int available() throws IOException |
普通 |
可以取得输入文件的大小 |
2 |
public void close()throws IOException |
普通 |
关闭输入流 |
3 |
public abstract int read()throws IOException |
普通 |
读取内容,以数字的方式读取 |
4 |
public int read(byte[] b)throws IOException |
普通 |
将内容读到byte数组之中,同时返回读入的个数 |
2.字符流:
字符输出流:Write
Write类的常用方法
序号 |
方法或常量 |
类型 |
描述 |
1 |
public abstract void close()throws IOException |
普通 |
关闭输出流 |
2 |
public void write(String str)throws IOException |
普通 |
将字符串输出 |
3 |
public void write(char[] cbuf)throws IOException |
普通 |
将字符数组输出 |
4 |
public abstract void flush()throws IOException |
普通 |
强制性清除缓存 |
Reader类的常用方法
字符输入流:Reader
序号 |
方法或常量 |
类型 |
描述 |
1 |
public abstract void close()throws IOException |
普通 |
关闭输出流 |
2 |
public void read()throws IOException |
普通 |
读取单个字符 |
3 |
public void read(char[] cbuf)throws IOException |
普通 |
将内容读到字符数组之中,返回读入的长度 |
3.字节流与字符流的区别
- 字符输入:字节(磁盘)–> 自动转换为 –>字符(内存);
- 字符输出:字符(内存)–> 自动转换为–>字节(磁盘);
在利用字符流输出的时候,所有的内容实际上都只是输出到了缓冲区中(内存)。在使用close()方法关闭的时候会将我们缓冲区的数据进行输出,如果没有关闭,那么就将无法进行输出,此时可以利用flush()方法进行强制的输出。字符使用到了缓冲区,而字节流没有使用到缓冲区。
学习总结:
本周主要学习了字节流和字符流,在写代码的时候只要弄清了当中的概念和方法,还是比较轻松的,但现在一些概念还是会搞混,要在书上查找,多写写代码应该会好些,总之这周没有什么难理解的概念,多写一些代码就能明白。