输入和输出处理

输入和输出处理

文件

创建文件对象

File file = new File( String pathname );

File类的常用方法

在这里插入图片描述

Java流的分类

在这里插入图片描述

FileInputStream

InputStream类常用方法

int read( )

int read(byte[] b)

int read(byte[] b,int off,int len)

void close( )

int available():可以从输入流中读取的字节数目

子类FileInputStream常用的构造方法

FileInputStream(File file)

FileInputStream(String name)

使用FileInputStream 读文本文件

import java.io.IOException;
import java.io.FileInputStream;//引入相关的类
FileInputStream fis= new FileInputStream("c:\\test.txt"); //构造文件输入流对象
fis.available(); 
fis.read();     //读取文本文件的数据
 fis.close();	//关闭文件流对象

FileOutputStream

OutputStream类常用方法

void write(int c)

void write(byte[] buf)

void write(byte[] b,int off,int len)

void close()

void flush():强制把缓冲区的数据写到输出流中

子类FileOutputStream常用的构造方法

FileOutputStream (File file)

FileOutputStream(String name)

FileOutputStream(String name,boolean append)

1前两种构造方法在向文件写数据时将覆盖文件中原有的内容

2创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件

使用FileOutputStream 写文本文件

import java.io.IOException;
import java.io.FileOutputStream;	//引入相关的类
FileOutputStream fos = new FileOutputStream("text.txt");  //创建文件输出流对象
String str ="好好学习Java";
byte[] words  = str.getBytes();
fos.write(words, 0, words.length);   //把数据写入文本文件
 fos.close(); 	//关闭文件流对象

Reader类

Reader类常用方法

int read( )

int read(char[] c)

read(char[] c,int off,int len)

void close( )

子类InputStreamReader常用的构造方法

InputStreamReader(InputStream in)

InputStreamReader(InputStream in,String charsetName)

FileReader类

FileReader类是InputStreamReader的子类

FileReader(File file)

FileReader(String name)

该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型

System.out.println(System.getProperty(“file.encoding”)); 获得本地平台的字符编码类型

使用FileReader读取文件

与字节流FileInputStream类实现文本文件读取步骤类似

import java.io.Reader;
import java.io.FileReader;
Import java.io.IOExceprion;		//引入相关的类
Reader fr= new FileReader("D:\\myDoc\\简介.txt"); 	//创建filereader对象
fr.read(); 	//读取文本文件的数据
fr.close();	//关闭filereader流对象

BufferedReader类

使用FileReader类与BufferedReader类可以提高字符流读取文本文件的效率

BufferedReader类是Reader类的子类

BufferedReader类带有缓冲区

按行读取内容的readLine()方法r

BufferedReader常用的构造方法

BufferedReader(Reader in)

BufferedReader特有的方法

readLine()

使用 BufferedReader读文本文件
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;   //引入相关的类
Reader fr = new  FileReader("C:\\myTest.txt ");  
BufferedReader br=new BufferedReader(fr);  //构造filereader对象和filereader对象
br.readLine();  
br.close();
fr.close();

Writer类

Writer类常用方法

write(String str)

write(String str,int off,int len)

void close()

void flush()

子类OutputStreamWriter常用的构造方法

OutputStreamWriter(OutputStream out)

OutputStreamWriter(OutputStream out,String charsetName)

FileWriter类

FileWriter类是OutputStreamWriter的子类

FileWriter (File file)

FileWriter (String name)

该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型

使用FileWriter写文件
import java.io.Reader;
import java.io.FileWriter;
Import java.io.IOException;
Writer fw= new FileWriter("D:\\myDoc\\简介.txt");
fw.write(); 
fw.close(); 
BufferedWriter类

使用FileWriter类与BufferedWriter类可以提高字符流写文本文件的效率

BufferedWriter类是Writer类的子类

BufferedWriter类带有缓冲区

BufferedWriter常用的构造方法

BufferedWriter(Writer out)

使用 BufferedWriter写文件
import java.io.FileWriter ;
import java.io.BufferedWriter ;
import java.io.IOException;
FileWriter fw=new FileWriter("C:\\myTest.txt"); 
BufferedWriter bw=new BufferedWriter(fw);
bw.write("hello");
bw.flush();  
fw.close();

读写二进制文件

DataInputStream类

FileInputStream的子类

与FileInputStream类结合使用读取二进制文件

使用 DataInputStream 读二进制文件
import java.io.FileInputStream; 
 import java.io.DataInputStream;
FileInputStream fis=new 
FileInputStream("C:\\HelloWorld.class");
DataInputStream dis=new DataInputStream(fis);
dis.read ();
dis.close();

DataOutputStream类

FileOutputStream的子类

与FileOutputStream类结合使用写二进制文件

使用 DataOutputStream写二进制文件
import java.io.FileOutputStream; 
import java.io.DataOutputStream;
FileOutputStream outFile=new FileOutputStream("C:\\temp.class");
DataOutputStream out=new DataOutputStream(outFile);
out.write();
out.close();

序列化和反序列化

序列化是将对象的状态写入到特定的流中的过程

反序列化则是从特定的流中获取数据重新构建对象的过程

序列化的步骤

实现SeriaLizable接口

创建对象输出流

调用writeObject()方法 读取对象

关闭对象输出流

使用集合保存对象,可以将集合中的所有对象序列化

反序列化的步骤

实现SeriaLizable接口

创建对象输入流

调用readObject()方法 读取对象

关闭对象输入流

如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取

序列化的步骤

实现SeriaLizable接口

创建对象输出流

调用writeObject()方法 读取对象

关闭对象输出流

使用集合保存对象,可以将集合中的所有对象序列化

反序列化的步骤

实现SeriaLizable接口

创建对象输入流

调用readObject()方法 读取对象

关闭对象输入流

如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值