JAVA程序设计----IO流基础(上)
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流基础(上)相关推荐
- JAVA程序设计----IO流(下)
字符流也有两个抽象基类:Reader是字符输入流,用于从目标文件读取字符:Writer是字符输出流,用于向目标文件写入字符. 实践出真知:码起来: 1.事先在当前目录下准备好一个test.txt 的文 ...
- java IO流基础 万字详解(从拷贝文件到模拟上传头像)
目录 一.前言: 二.IO流简介: 1.什么是IO流? 2.IO流能干什么? 3.IO流的分类: 4.IO流体系: 三.字符流读写文件: 1.普通字符流读取文件: 前言: ①以单个字符读取: 代码演示 ...
- Java基础知识(三十一)IO流(二) File类、递归、IO流基础
目录 一. File类 1.File: 2.构造方法: 3.创建功能 4.删除功能 5. 重命名功能 6.判断功能 7.基本获取功能 8.高级获取功能 9.需求: 二.递归 1.概述: 2. 递 ...
- 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础
06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍 Eclipse断点调试 基 ...
- java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上
标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class ...
- Java 的 IO 流
接着上一篇的 "Java 的 File 类" 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的 ...
- 三万字的java I/O流基础总结看完肯定能把女朋友教会
目录: 1.File类详解 2.I/O流概述 3.字节输出流(OutputStream) 4.字节输入流(InputStream) 5. 字符流概述 6.字符输入流(Reader) 7.字符输出流(W ...
- Java进阶 | IO流核心模块与基本原理
一.IO流与系统 IO技术在JDK中算是极其复杂的模块,其复杂的一个关键原因就是IO操作和系统内核的关联性,另外网络编程,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux ...
- Java学习---Day16_IO流基础篇
Java学习-Day16_IO流基础篇 文件操作 操作磁盘上的某一个文件或某一个文件夹,可以对他们进行创建或删除.移动.属性获取.属性设置等操作.但是,不包含读取文件的内容.拷贝文件 ps:java中 ...
最新文章
- Ubuntu 11.10中用xen-tools安装虚拟机(UbuntuCentOS)
- 实用C#编程规范(转载)
- 每日一博 - Java序列化一二事儿
- 【PAT乙级】1013 数素数 (20 分)
- 胃癌2019csco指南_领读指南沈琳:2019CSCO胃癌指南重要更新
- 【放置奇兵】踩坑记录( 白字、红字、黄字)tips 小技巧
- ajax正则验证p标签显示,JQuery+Ajax实现唯一性验证、正则
- jquery元素节点操作
- java swing 列表框_如何在Swing中使用列表框?
- WPF ListView中自动生成的列
- Linux硬链接和软链接
- python读取文件时提示“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 1264: illegal multi
- ARM、DSP、FPGA的技术特点和区别
- InstallShield 12 制作安装包
- Linux命令详解词典高频命令(三)
- python2.7+pyqt4安装
- PDF编辑器怎么用,如何旋转PDF页面
- class类型重定义
- matlab打开excel乱码,ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
- (三)ArcGIS Server之发布要素服务
热门文章
- CodeForces - 731D 80-th Level Archeology(线段树+暴力/差分)
- SPOJ - IITKWPCE Let us play with strings(回文自动机+Palindrome Series优化dp)
- 数据分析与挖掘实战-中医证型关联规则挖掘
- Instsrv.exe可以给系统安装和删除服务
- WinSock编程基础
- 监听以太网(三) Packet32数据结构说明
- 面试官:为什么SpringBoot的 jar 可以直接运行?
- 大规模集群故障处理,能抗住这3个灵魂拷问算你赢
- 『Go 语言底层原理剖析』文末送书
- 本地存储和移动端js框架及bootstrap简介