Java I/O
2021-10-14 14:36:37 17 举报
AI智能生成
Java I/O
作者其他创作
大纲/内容
按处理的数据单位不同
字节流
FileOutputStream类
FileInputStream类
字符流
FileWriter类
FileReader类
字节/字符流都可以通过传递一个字节/字符数组创建缓冲区读取<br>每次读取多个字节,减少了系统间的IO操作次数<br>从而提高读写的效率
模板<br> // 定义变量,作为有效个数<br> int len ;<br> // 定义字节数组,作为装字节数据的容器(字符数组同理)<br> byte[] b = new byte[1024]; //<font color="#ff9800">数组大小一般开1024的倍数</font><br> // 循环读取<br> while (( len= fis.read(b))!=-1) {<br> // 每次读取后,把数组变成字符串打印<br> System.out.println(new String(b),0,len);// len 每次读取的有效字节个数<br> }
按数据流方向不同
输入流
输出流
按功能不同
节点流
处理流
缓冲流
字节缓冲流
BufferedInputStream类
BufferedOutputStream类
字符缓冲流
BufferedReader类
BufferedWriter类
输出流数据追加续写:同理 在传递的输出流对象的构造方法中添加一个参数true<br>BufferedOutputStream(new FileOutputStream(String name,true))<br>BufferedWriter(new FileWriter(String name,true))
转换流
转换流是字节与字符间的桥梁
InputStreamReader类
OutputStreamWriter类
对象流<br>
概念:对象序列化/反序列化
Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象<br>该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息<br>字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息 <br>反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化<br>对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象
ObjectOutputStream类
ObjectInputStream类
打印流
printStream类
构造方法
PrintStream(String fileName)使用指定的文件名创建一个新的打印流
PrintStream(OutputStream out)使用指定的字节输出流创建一个新的打印流
PrintStream(File file)使用指定的文件对象创建一个新的打印流
特有方法
void print(任意类型的值)
void println()
static void setOut(printStream out)改变打印流流向
public class PrintDemo {<br> public static void main(String[] args) throws IOException {<br> // 调用系统的打印流,控制台直接输出97<br> System.out.println(97);<br> <br> // 创建打印流,指定文件的名称<br> PrintStream ps = new PrintStream("ps.txt");<br> <br> // 设置系统的打印流流向,输出到ps.txt<br> System.setOut(ps);<br> // 调用系统的打印流,ps.txt中输出97<br> System.out.println(97);<br> }<br>}
数据流
都继承于四种抽象流类型
字节输出流OutputStream
字节输入流InputStream
字符输出流Writer
字符输入流Reader
属性集
java.util.Properties 继承于Hashtable,来表示一个持久的属性集。<br>它使用键值结构存储数据,每个键及其对应值都是一个字符串。<br>该类也被许多Java类使用,比如获取系统属性时,System.getProperties方法就是返回一个Properties对象。
构造方法
public Properties():创建一个空的属性列表
基本存储方法
Object setProperty(String key, String value): 保存一对属性
String getProperty(String key) :使用此属性列表中指定的键搜索属性值
Set<String> stringPropertyNames() :所有键的名称的集合
与流相关的方法
void load(InputStream inStream): 从字节输入流中读取键值对
0 条评论
下一页