博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
io流2
阅读量:5367 次
发布时间:2019-06-15

本文共 3367 字,大约阅读时间需要 11 分钟。

对象流

  • ObjectInputSteam
  • OjbectOutputSteam
  • 序列化,用OOS类将一个java对象写入io流中,只传输gc的数据
  • 反序列化,用OIS类从io流中恢复该java对象
  • 要求
    • 要求实现序列化和反序列化的对象必须已经实现了Serializable接口
    • 读写顺序一致
  • 方法,
    • writeXX或writeObject
    • readXX或readObject
  • RMI(远程方法调用)基础
  • Serializable接口有即可,做标志使用,表明这个类的对象可以被序列化
  • 静态属性不在gc区中,无法序列化
  • 不想被序列化:可以用关键词:transient 修饰
  • 可以序列化数组,反序列化为数组,但要求数组中的元素,必须可以序列化
    • 当作对象序列化
  • 可以序列化集合,反序列化为集合,要求元素可以序列化

  • 刷新
    • bufWriter.flush();//把缓冲区的数据刷到磁盘
  • 写入追加,
    • new 流的时候进行添加第二参数true,改变重写为追加

转换流

  • InputStreamReader
    • 字节流转字符流
    • 可以解码
  • OutputStreamWriter
    • 字符转字节流
    • 可以编码
//读取UTF8编码的文件@Testpublic void testName2() {    FileInputStream fileInputStream = null;    InputStreamReader isr = null;    BufferedReader bufferedReader = null;    try {        fileInputStream = new FileInputStream("编码测试2.txt");        isr = new InputStreamReader(fileInputStream, "utf8"); // 第2个参数是告诉转换流, 我的文本文件中是UTF8编码方式的内容        bufferedReader = new BufferedReader(isr);                String readLine = bufferedReader.readLine();        while (readLine != null) {            // 处理数据            System.out.println(readLine);            // 继续读            readLine = bufferedReader.readLine();        }            } catch (Exception e) {        e.printStackTrace();    } finally {        if (bufferedReader != null) {            try {                bufferedReader.close();            } catch (Exception e2) {            }        }    }}// 写一个UTF8编码方式的文件@Testpublic void testName3() {    FileOutputStream fos = null;    OutputStreamWriter osw = null;    BufferedWriter bufWriter = null;    try {        fos = new FileOutputStream("写一个utf8文本文件.txt");         osw = new OutputStreamWriter(fos, "utf8");        bufWriter = new BufferedWriter(osw);                bufWriter.write("abc我喜欢你1234567");        bufWriter.newLine();            } catch (Exception e) {        e.printStackTrace();    } finally {        if (bufWriter != null) {            try {                bufWriter.close();            } catch (Exception e2) {            }        }    }}
String类自转码
  • Byte[] getBytes(String str = "gbk") //编码
  • String String(byte b, String = "utf8")//解码
String string21 = new String(bytes1, "gbk");//缺省取操作系统编码方式byte[] bytes1 = string.getBytes("gbk");     //缺省取操作系统编码方式,中国一般为gbk
System中的io
  • System.in 标准流,
  • System.in 属于 InputStream
  • System.out.println() //标准的输出流
  • System.err.println() //颜色不同,它的执行是在另一个线程里的

Scanner类

  • Scanner 类,扫描器
    • 扫描器各种空间
    • boolean hasNext() //有没有下一个
    • String next() //获取下一个
      • 会用空格来分割字符
    • String nextLine() //获取一行
    • int nextInt() //获取整数
    • boolean hasInt() //是否有下一个整数
    • 等支持任意类型

打印流

处理流

数据流

File类

  • 代表文件,和目录
  • 主要方法
    • boolean mkdir() //创建单层目录
    • boolean mkdirs() //创建多层目录
    • File listFiles() //列出目录下的所有的文件
    • long length() //长度
    • boolean delete() //删除
    • boolean isDirectory() //是目录
    • boolean isFile() //是文件
    • String getName() //文件名或目录名

io流体系

分类 字节输入流 字节输出流 字符输入流 字符输入流
抽象基类 InputStream OutputStream Reader Wtiter
访问文件 FileInputStream FileOutputStream FileReader FileWtiter
访问数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWtiter
访问管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
访问字符串 Reader Writer
缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
转换流 InputStreamReader OutputStreamWriter
对象流 ObjectInputStream ObjectOutputStream
? FilterInputStream FilterOutputStream FilterReader FilterWriter
打印流 PrintStream PrintWriter
推回输入流 PushbackInputStream PushbackReader
特殊流 InputStream OutputStream

转载于:https://www.cnblogs.com/aishuijdemiaomiao/p/10003900.html

你可能感兴趣的文章
[xampp] /usr/bin/env: php: No such file or directory
查看>>
细学PHP 10 贴吧-2
查看>>
黑客攻防入门秘籍
查看>>
Swift迎来了1.0 GM 版(2014.09.09)
查看>>
【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意button状态的检查...
查看>>
《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本
查看>>
Java 编程下实现随机无重复数字功能
查看>>
Android 编程下的代码混淆
查看>>
animation属性
查看>>
页内的模块和组件抽象规划经验
查看>>
安全-分析深圳电信的新型HTTP劫持方式
查看>>
将Centos的yum源更换为国内的阿里云源
查看>>
git diff 的用法
查看>>
一段sql的优化
查看>>
十进制与十六进制的相互转换
查看>>
在Flex中用Validator检测数字、字符串、Email.
查看>>
[leetcode]4Sum
查看>>
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
Java 将指定字符串连接到此字符串的结尾 concat()
查看>>