码迷,mamicode.com
首页 > 其他好文 > 详细

第十周课程总结

时间:2019-11-03 12:52:00      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:file   个人   java   buffer   NPU   port   一个   http   流程   

本周Java课程学习总结

一、使用RandomAccessFile类读取数据

读取时直接使用“r”的模式即可。以只读的方式打开文件。读取时所有的字符串只能按照byt数组的方式读取出来,而且所有的长度是8位。

源代码:https://blog.csdn.net/u013087513/article/details/51911577

import java.io.File ;
import java.io.RandomAccessFile ;
public class RandomAccessFileDemo02{
    // 所有的异常直接抛出,程序中不再进行处理
    public static void main(String args[]) throws Exception{
        File f = new File("d:" + File.separator + "test.txt") ;    // 指定要操作的文件
        RandomAccessFile rdf = null ;        // 声明RandomAccessFile类的对象
        rdf = new RandomAccessFile(f,"r") ;// 以只读的方式打开文件
        String name = null ;
        int age = 0 ;
        byte b[] = new byte[8] ;    // 开辟byte数组
        // 读取第二个人的信息,意味着要空出第一个人的信息
        rdf.skipBytes(12) ;        // 跳过第一个人的信息
        for(int i=0;i<b.length;i++){
            b[i] = rdf.readByte() ;    // 读取一个字节
        }
        name = new String(b) ;    // 将读取出来的byte数组变为字符串
        age = rdf.readInt() ;    // 读取数字
        System.out.println("第二个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
        // 读取第一个人的信息
        rdf.seek(0) ;    // 指针回到文件的开头
        for(int i=0;i<b.length;i++){
            b[i] = rdf.readByte() ;    // 读取一个字节
        }
        name = new String(b) ;    // 将读取出来的byte数组变为字符串
        age = rdf.readInt() ;    // 读取数字
        System.out.println("第一个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
        rdf.skipBytes(12) ;    // 空出第二个人的信息
        for(int i=0;i<b.length;i++){
            b[i] = rdf.readByte() ;    // 读取一个字节
        }
        name = new String(b) ;    // 将读取出来的byte数组变为字符串
        age = rdf.readInt() ;    // 读取数字
        System.out.println("第三个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
        rdf.close() ;                // 关闭
    }
}

运行截图

 

技术图片

 

 重要内容

技术图片

 

 二、字节流与字符流基本操作

1.在Java中IO操作以文件操作为例,主要操作流程如下:

  (1) 使用File类打开一个文件。

(2)通过字节流或字符流的子类指定输出的位置。

(3)进行读/写操作。

(4)关闭输入/输出。

2.异常的处理的格式

try{可能有问题的代码}
catch(Exception e){问题的解决方式}
finally{一定会执行的代码,一般为关闭资源等内容}

 三、字节流与字符流的区别(除了代码上的区别)

1.在字符流的操作中,所有的字符都是在内存中形成的,所以在输出前会将所有的内容暂时保存在内存之中,所以使用了缓存区暂存数据。

2.字节流在操作的时候本身不会用到缓冲区(内存),是于文件本身直接操作,而字符流在操作时使用到缓冲区,通过缓冲区再操作文件。

 四、转换流——OutputStreamWrite类与InputStreamReader类

BufferedReader 字符流,只能装饰字符流,不能装饰字节流。有个重要且好用的方法是readLine()整行读取字符。

但是InputStream是字节流,没有resdLine方法,那么字节流InputStream如何使用readLine方法呢???

如果能把字节流转换成字符流就可以使用BufferedReader装饰流。也就可以使用readLine方法。

 https://blog.csdn.net/qq_40395278/article/details/81048676

把字节流转换成字符流,或者把字符流转为字节流    称为转换流: 

InputStreamReader(前缀是功能,后缀是体系):字节流通向字符流的桥梁。他可以使用指定的charset读取字节流并将其解码为字符

OutputStreamWriter:字符流通向字节流的桥梁,他可以使用指定的charset将要写入流的字符编码成字节 

 

第十周课程总结

标签:file   个人   java   buffer   NPU   port   一个   http   流程   

原文地址:https://www.cnblogs.com/Markming/p/11785512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!