1. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出它们分别是哪些类?

字节流和字符流;其中字节流继承于InputStream OutputStream,字符流继承于Reader Writer。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

2.什么是java序列化?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

3.如何实现java序列化?

将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

4.什么是标准的I/O流?

在java语言中,用stdin表示键盘,用stdout表示监视器。他们均被封装在System类的类变量in和out中,对应于系统调用System.in和System.out。这样的两个流加上System.err统称为标准流,它们是在System类中声明的3个类变量:public static InputStream in、public static PrintStream out和public static PrintStream err

5.说出3个常见的字符集,实际开发中最常用的是哪种?

ASCII、ISO-8859-1、GB2312、GBK、Unicode、UTF-8(写出3种即可),其中开发中最常用的是UTF-8。

【注】字节流8bit,从程序到文件是输出流(OutputStream),将数据从程序输出到文件;从文件到程序是输入流(InputStream),通过程序,读取文件中的数据。这样就实现了数据的传输。

package com.ten;
/*** 利用FlieInputStream和FileOutputStream完成以下要求* 1.用FileOutputStream在当前目录下创建文件test.txt,并向文件输出“helloworld”,* 如果文件存在,则在原有内容后面追加* 2.用FlieInputStream读入test.txt文件,并在控制台上打印出test.txt文件中的内容* 3.要求同try-catch-finally处理异常,并且关闭流放在finally块中*/import java.io.FileOutputStream;
import java.io.IOException;/*** 字节流读写文件* FileOutputStream*/public class tenA {public static void main(String[] args) {System.out.println("请输入要保存的文件:");int count,n=512;byte b[] = new byte[n];FileOutputStream fos = null;try {count = System.in.read(b);//从输入流中读取数据的下一个字节//读取标准输入流//创建文件输出流对象fos = new FileOutputStream("test.txt",true);//如果不想清除文件内容,则设置append:truefos.write(b,0,count);//将指定b数组中从偏移量0开始的count个字节写入此输出流System.out.println("已成功保存test.txt!");} catch (IOException e) {e.printStackTrace();}finally {try {fos.close();} catch (IOException e) {e.printStackTrace();}}}
}
package com.ten;import java.io.FileInputStream;
import java.io.IOException;/*** 字节流读写文件* FileInputStream*/
public class tenAa {public static void main(String[] args) {FileInputStream fis = null;try {fis = new FileInputStream("test.txt");int n = 512;//设定读取的字节数byte b[] = new byte[n];//读取输入流while((fis.read(b,0,n) != -1) && n > 0){//将输出流中最多n个数据字节读入b数组System.out.println(new String(b));}} catch (IOException e) {e.printStackTrace();}finally {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}
}

过滤流 利用Data流完成以下操作:
* 1.判断目录下是否存在一个“test.dat”的文件,如果该文件不存在,则往该文件中写入一个long类型的数值:10000L
* 2.如果该文件存在,则从该文件中读取数值,并把该数值加1之后,再存回文件中。

import java.io.*;
public class tenB {public static void main(String[] args) {File file = new File("test.dat");Boolean flag = file.exists();FileInputStream fis = null;DataInputStream dis = null;FileOutputStream fos = null;DataOutputStream dos = null;
//        System.out.println(flag);long l1;long l2;if(flag == true){try {fis = new FileInputStream("test.dat");dis = new DataInputStream(fis);fos = new FileOutputStream("test.dat",true);dos = new DataOutputStream(fos);l2 = dis.readLong()+1L;System.out.println(l2);dos.writeLong(l2);System.out.println("数值加一保存成功!");dis.close();dos.close();fis.close();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}else{try {fos = new FileOutputStream("test.dat",true);dos = new DataOutputStream(fos);dos.writeLong(10000L);System.out.println("已保存到read.txt!");dos.close();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
}

JAVA程序设计----IO流基础(上)相关推荐

  1. JAVA程序设计----IO流(下)

    字符流也有两个抽象基类:Reader是字符输入流,用于从目标文件读取字符:Writer是字符输出流,用于向目标文件写入字符. 实践出真知:码起来: 1.事先在当前目录下准备好一个test.txt 的文 ...

  2. java IO流基础 万字详解(从拷贝文件到模拟上传头像)

    目录 一.前言: 二.IO流简介: 1.什么是IO流? 2.IO流能干什么? 3.IO流的分类: 4.IO流体系: 三.字符流读写文件: 1.普通字符流读取文件: 前言: ①以单个字符读取: 代码演示 ...

  3. Java基础知识(三十一)IO流(二) File类、递归、IO流基础

    目录 一. File类 1.File: 2.构造方法: 3.创建功能 4.删除功能 5.  重命名功能 6.判断功能 7.基本获取功能 8.高级获取功能 9.需求: 二.递归 1.概述: 2.   递 ...

  4. 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础

    06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍  Eclipse断点调试  基 ...

  5. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上

    标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class  ...

  6. Java 的 IO 流

    接着上一篇的 "Java 的 File 类" 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的 ...

  7. 三万字的java I/O流基础总结看完肯定能把女朋友教会

    目录: 1.File类详解 2.I/O流概述 3.字节输出流(OutputStream) 4.字节输入流(InputStream) 5. 字符流概述 6.字符输入流(Reader) 7.字符输出流(W ...

  8. Java进阶 | IO流核心模块与基本原理

    一.IO流与系统 IO技术在JDK中算是极其复杂的模块,其复杂的一个关键原因就是IO操作和系统内核的关联性,另外网络编程,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux ...

  9. Java学习---Day16_IO流基础篇

    Java学习-Day16_IO流基础篇 文件操作 操作磁盘上的某一个文件或某一个文件夹,可以对他们进行创建或删除.移动.属性获取.属性设置等操作.但是,不包含读取文件的内容.拷贝文件 ps:java中 ...

最新文章

  1. Ubuntu 11.10中用xen-tools安装虚拟机(UbuntuCentOS)
  2. 实用C#编程规范(转载)
  3. 每日一博 - Java序列化一二事儿
  4. 【PAT乙级】1013 数素数 (20 分)
  5. 胃癌2019csco指南_领读指南沈琳:2019CSCO胃癌指南重要更新
  6. 【放置奇兵】踩坑记录( 白字、红字、黄字)tips 小技巧
  7. ajax正则验证p标签显示,JQuery+Ajax实现唯一性验证、正则
  8. jquery元素节点操作
  9. java swing 列表框_如何在Swing中使用列表框?
  10. WPF ListView中自动生成的列
  11. Linux硬链接和软链接
  12. python读取文件时提示“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 1264: illegal multi
  13. ARM、DSP、FPGA的技术特点和区别
  14. InstallShield 12 制作安装包
  15. Linux命令详解词典高频命令(三)
  16. python2.7+pyqt4安装
  17. PDF编辑器怎么用,如何旋转PDF页面
  18. class类型重定义
  19. matlab打开excel乱码,ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
  20. (三)ArcGIS Server之发布要素服务

热门文章

  1. CodeForces - 731D 80-th Level Archeology(线段树+暴力/差分)
  2. SPOJ - IITKWPCE Let us play with strings(回文自动机+Palindrome Series优化dp)
  3. 数据分析与挖掘实战-中医证型关联规则挖掘
  4. Instsrv.exe可以给系统安装和删除服务
  5. WinSock编程基础
  6. 监听以太网(三) Packet32数据结构说明
  7. 面试官:为什么SpringBoot的 jar 可以直接运行?
  8. 大规模集群故障处理,能抗住这3个灵魂拷问算你赢
  9. 『Go 语言底层原理剖析』文末送书
  10. 本地存储和移动端js框架及bootstrap简介