什么叫IO流?
IO包括输入和输出流,输入流指的是将数据以字符或字节形式从外部媒介比如文件、数据库等读取到内存中所以也分为字符输入流和字节输入流。
输出流指的是将内存中的数据写入外部媒介,也分为了字符输出流和字节输出流。
注意:(这里的输出输入是站在内存的角度上来理解的,所以输出才是写入文件,输入是读取文件)
文件不仅仅可以保存数字和其他的。还可以保存对象,通过对象调用相关参数
一、IO流的三种分类方式。
1.按流的方向分为:输入流和输出流。
2.按流的数据单位不同分为:字节流和字符流。
3.按流的功能不同分为:节点流和处理流。
二、IO流的四大抽象类。
1.按流的方向分为:输入流和输出流
2.按流的数据单位不同分为:字节流和字符流
3.按流的功能不同分为:节点流和处理流(过滤流)
节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。
过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。
二、IO流的四大抽象类:
字符流:Reader
Writer
字节流:InputStream(读数据)
OutputStream(写数据)
三、InputStream的基本方法
int read() throws IOException 读取一个字节以整数形式返回,如果返回-1表示已到输入流的末尾
void close() throws IOException 关闭流释放内存资源
long skip(long n) throws IOException 跳过n个字节不读
四、OutputStream的基本方法
void write(int b) throws IOException 向输出流写入一个字节数据
void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地
五、Writer的基本方法
void write(int c) throws IOException 向输出流写入一个字符数据
void write(String str) throws IOException将一个字符串中的字符写入到输出流
void write(String str,int offset,int length)将一个字符串从offset开始的length个字符写入到输出流
void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地
六、Reader的基本方法
int read() throws IOException 读取一个字符以整数形式返回,如果返回-1表示已到输入流的末尾(上面已经写了)
下面两个方法是实现五子棋保存的,与重新打开的方法,在原程序里的监听器里面只需要把五子棋对象保存到一个队列里面就好了(list队列)
//写一个写入方法,将数据保存到文件里面
public boolean write(String fileName) throws IOException {
// FileInputStream fis = new FileInputStream(list.get(i));
this.list = cl.list;
//写入对象
FileOutputStream fos = new FileOutputStream(fileName);//
ObjectOutputStream out = new ObjectOutputStream(fos);
// 写入队列的长度
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(list.size());
for (int i = 0; i < list.size(); i++) {
Chess chess = list.get(i);
out.writeObject(chess);
// System.out.println("aaaaaaaaaaa");
out.flush();
}
//写完文件后关闭文件
dos.close();
out.close();
return true;
}
//定义一个打开文件的方法
public boolean open(String fileName) throws IOException,ClassNotFoundException {
// for (int i = 0; i < list.size(); i++) {
FileInputStream fis = new FileInputStream(fileName);
ObjectInputStream input = new ObjectInputStream(fis);
//首先读取原来队列的长度,即对象的个数
DataInputStream dis = new DataInputStream(fis);
int listSize = dis.readInt();
for (int i = 0; i <listSize; i++) {
//强制转型,读出对象
Chess chess = (Chess) input.readObject();
//判断并设置画布的颜色
if(chess.getColor()==1){
g.setColor(Color.black);
}else{
g.setColor(Color.WHITE);
}
System.out.println(chess.getI()+"ppppppppppppppp"+ chess.getJ());
g.fillOval(chess.getI()+Config.CHESS_SIZE /4, chess.getJ()+Config.CHESS_SIZE ,
Config.SIZE, Config.SIZE);
// chess = (Chess) input.readObject();
}
//数据读取完毕,关闭文件
dis.close();
input.close();
return true;
}
分享到:
相关推荐
Java io流的总结
Java IO流总结 Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据...
java的IO流总结:包含Inputstream,OutputStream,writer和reader
### Java IO流总结 #### 一、Java IO流概述及概念 **毕向东**老师是一位经验丰富的Java讲师,以其通俗易懂的教学风格受到广大学员的喜爱。在其分享的《Java Io流总结》文档中,详细介绍了Java IO流的基础概念、...
Java IO流是Java平台中处理输入输出操作的核心组件,它允许程序与各种数据源(如文件、设备、网络连接)进行交互。IO流系统由多个类和接口组成,它们位于java.io包中,为开发者提供了读写数据的丰富功能。在Java中,...
JAVA_IO流学习总结
Java的IO流是程序进行输入输出操作的核心机制,它提供了从不同来源获取数据和向不同目的地发送数据的能力。IO流可以分为两大类:Input Stream(输入流)和Output Stream(输出流),它们各自又细分为以字节为导向和...
JAVA-IO流基础
这篇文章将对Java中的IO流进行详细总结,包括其分类、工作原理以及常见使用场景。 首先,我们来了解什么是流。在计算机科学中,流是一种抽象的数据表示,它允许程序按顺序读取或写入数据,就像水从管道中流动一样。...
java I/O流的总结 1.操作数据单位:字节流、字符流 对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 ...
IO, Stream, input,output学习总结,希望帮助到各位学习
Java 中的 IO 流总结 Java 中的 IO 流是一种基本的数据输入/输出机制,它允许程序从外部设备、文件或网络中读取数据或将数据写入外部设备、文件或网络中。下面是 Java 中 IO 流的总结: 一、流的继承关系 Java 中...
就是总结一下
总结来说,Java IO流是一个庞大的体系,覆盖了从基础的文件操作到复杂的网络通信,理解并熟练掌握这一部分将极大地提升Java开发者的技能。通过学习和实践,开发者可以灵活地处理各种数据输入输出场景,为应用程序...
在"8.23总结"这个文件中,可能包含了关于IO流和XML解析的实践案例、最佳实践、常见问题及其解决方案等内容。通过学习这个文件,开发者可以深化对这两部分知识的理解,提升在实际项目中的应用能力。
关于io看流的总结概括,设计到异常抛出,io流,转换流,字符流
下面是对Java IO流的详细总结: 1. 流的概念: 流是一种抽象的数据传输方式,可以将数据从一个地方传输到另一个地方。Java中的流分为输入流和输出流,分别用于读取和写入数据。流按照处理数据的不同类型,又可以...
总结来说,Java的IO流是一个庞大且重要的主题,涵盖了数据的输入、输出、缓冲、转换等多个方面。对于初学者而言,理解和掌握IO流的基本概念、分类以及常用类的用法是至关重要的。通过实践练习,可以加深对IO流的理解...
本文档为本人学习 java IO流期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
这是别人总结的很有实用价值的javaIO流教程。