字节输入/输出流的相关整理
2018-03-22 20:03
399 查看
字节输入流,继承自InputStream,用于输入数据,单位为字节
字节输入流结构(深色为节点流,浅色为处理流)
![](https://img-blog.csdn.net/20180322193435739?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfY29kZXJfZ3Vhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
字节输出流,是继承于OutputStream类,输出以字节为单位
字节输出流结构(深色为节点流,浅色为处理流)
![](https://img-blog.csdn.net/20180322194225267?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfY29kZXJfZ3Vhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
FileInputStream用指定文件创建文件字节输入流:public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("E:\\a.txt");
int read;
byte[] bytes = new byte[1024];
// 读取文件,存入字节数组b,返回读取到的字符数,存入read,默认每次将b数组装满
read = fis.read(bytes);
while (read != -1) {
read = fis.read(bytes);
}
System.out.println(new String(bytes));
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream创建文件字节输出流:public static void main(String[] args) {
File file = new File("E:\\a.txt");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
String str = "创建文件输出字节流!!!";
byte[] buffer = str.getBytes();
fos.write(buffer);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(fos != null){
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
![](https://img-blog.csdn.net/2018032219551957?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfY29kZXJfZ3Vhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180322195604992?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfY29kZXJfZ3Vhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
首先先了解一个接口:java.io.serializable
JAVA允许我们在内存中创建可重复使用的对象,但是,他们的生命仅仅只和虚拟机运行时间一样长。
一旦JVM停止运行,对象随之被清除,如何才能我们的对象永久保存?
java.io.Serializable接口可以使我们的对象永久的持久化
1.java.io.Serializable接口没有任何方法属性域,实现它的类只是从语义上表明自己是可以序列化的2.在对一个 Serializable(可序列化)对象进行重新装配的过程中,不会调用任何构造器(甚至默认构造器)。整个对象都是通过从InputStream中取得数据恢复的3.如是要一个类是可序列化的,那么它的子类也是可序列化的4.被transient修饰的数据不能序列化
对象字节流(ObjectInputStream\ObjectOutputStream)
字节输入流结构(深色为节点流,浅色为处理流)
字节输出流,是继承于OutputStream类,输出以字节为单位
字节输出流结构(深色为节点流,浅色为处理流)
FileInputStream用指定文件创建文件字节输入流:public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("E:\\a.txt");
int read;
byte[] bytes = new byte[1024];
// 读取文件,存入字节数组b,返回读取到的字符数,存入read,默认每次将b数组装满
read = fis.read(bytes);
while (read != -1) {
read = fis.read(bytes);
}
System.out.println(new String(bytes));
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream创建文件字节输出流:public static void main(String[] args) {
File file = new File("E:\\a.txt");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
String str = "创建文件输出字节流!!!";
byte[] buffer = str.getBytes();
fos.write(buffer);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(fos != null){
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
首先先了解一个接口:java.io.serializable
JAVA允许我们在内存中创建可重复使用的对象,但是,他们的生命仅仅只和虚拟机运行时间一样长。
一旦JVM停止运行,对象随之被清除,如何才能我们的对象永久保存?
java.io.Serializable接口可以使我们的对象永久的持久化
1.java.io.Serializable接口没有任何方法属性域,实现它的类只是从语义上表明自己是可以序列化的2.在对一个 Serializable(可序列化)对象进行重新装配的过程中,不会调用任何构造器(甚至默认构造器)。整个对象都是通过从InputStream中取得数据恢复的3.如是要一个类是可序列化的,那么它的子类也是可序列化的4.被transient修饰的数据不能序列化
对象字节流(ObjectInputStream\ObjectOutputStream)
public static void main(String[] args) { ObjectOutputStream oos = null; FileOutputStream fos = null; try { fos = new FileOutputStream(new File("E:\\test.dat")); oos = new ObjectOutputStream(fos); oos.writeObject(new Person("jim",23)); } catch (Exception e) { e.printStackTrace(); } finally { if (oos != null) { try { oos.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e2) { e2.printStackTrace(); } } } }对象输出流代码就差不多同上,此处略去。。。。。。。
相关文章推荐
- Java基础-IO-字节输入输出流(笔记)
- 唠唠SE的IO-02——字节输入输出流
- IO流,关于File类的一些;以及输入输出流 整理
- Java中的字节输入出流和字符输入输出流
- 字节输入输出流的代码注意事项
- Java用字节输入输出流实现从一个文件到另一个文件的内容追加
- Collections,泛型,File,IO流,字节/符输入输出流
- Java中字符输入输出流与字节输入输出流的区别
- java中字节输入输出流操作详解
- 学习笔记_JavaSE_20_字节输入输出流、字节缓冲流
- [02] 输入/输出流 和 字节/字符流
- java输入输出流、字符字节流
- 字节输入输出流
- java输入输出流、字符字节流
- 字节输入输出流:java.io.FileInputStream和java.io.FileOutputStream
- JavaIO 总结笔记<三> 基本字节字符输入输出流和文件复制
- 字节流之数据输入输出流
- 【IO流】字节输入输出流
- IO流输入输出流,字符字节流
- 字符输入输出流与字节输入输出流