IO流
来源:互联网 发布:磁盘修复软件 编辑:程序博客网 时间:2024/06/05 23:43
文件字节输入流
使用该流读取数据
Public FileInPutStream()
一次读取一个字节:
int by=0;
while((by=文件名.read())!=-1){
system.out.println((char)by);
}
文件名.close();
一次读取一个字节数组
byte[] bys=new byte[1024];
int len=0;
while((len=文件名.read(bys))!=-1){
System.out.println(new String(文件名,0,len));
}
使用文件字节输入流一次读取一个字节和一次读取一个字节数组的对比
方式1:
一次读取一个字节:
FileReader fr=new FileReader(“fr.txt”) ;
int by=0;
while((by.read())!=-1){
system.out.println((char)by);
}
方式2:
FileReader fr=new FileReader(“fr.txt”) ;
byte[] bys=new byte[1024];
int len=0;
while((len=fr.read(bys))!=-1){
System.out.println(new String(bys,0,len));
}
复制文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyDemo {
public static void main(String[] args)throws IOException {
//封装数据源
FileOutputStream fos=new FileOutputStream("D:\\b.txt");
//封装输出元
FileInputStream fis=new FileInputStream("C:\\a.txt");
int by=0;
while((by=fis.read())!=-1){
fos.write(by);
}
fis.close();
fos.close();
}
}
字节缓冲流:
字节缓冲输入流:BufferedInputStream
读数据:也是两种方式:读取数据的速率大于字节流的速率
字节缓冲输出流;BufferedOutputStream
刷新缓冲区的流:flush();上传是防止图片加载不完全
字节流和字符流的使用:
当我们操作的是一个文本文件,优先采用字符流,如果文件读不懂,那么使用字节流,如音频视频文件.
字符输入流:Reader
InputStreamReader=字节输入流+在编码格式
便捷类:FileReader
字符输出流:writer
OutputStreamWriter=字节输出流+编码格式
FileWriter有一种构造方式:FileWriter(OutputStream out);追加写入
BufferedReader:字符缓冲输入流:特殊方法:
public String readLine(){}
为什么字节缓冲不能直接对文件进行操作?
缓冲流只是提供一个缓冲区,针对IO进行实现数据的传输,实际是通过底层基本流进行实现的,所以缓冲流不能直接对文件进行操作.
字节流赋值文件有几种方式
1:基本字节流一次读取一个字节
2:基本字节流一次读取一个字节数组
3:高效字节流一次读取一个字节 字节缓冲输入流
4;高效字节流一次读取一个字节数组
FileInputStream-------------------------byte
InputStreamReader--------------------char
递归: 考点
1:递归和File类中一些方法,Timer(定时器)
前提条件:1) 定义一个方法
2)找当前需求中的规律
3)找出口条件.
IO流中其他的一些流:ByteArrayInputStream
toByteArray
打印流:
字节打印流:PrintStream
字符打印流:PrintWriter
特点:1) 打印流不能操作数据元 ,只能操作目的地的数据
2)打印流可以有自动书刷新功能
3)打印流可以直接针对文本文件进行操作
〗随机访问流: RandomAccessFile
〗内存操作流:ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。
〗打印流
〗标准输入输出流
〗合并流:SequenceInputStream
读写数据.
〗序列化流:将对象以流的方式或者网络传输中的数据写数据,
对象------->流数据:ObjectOutputStream
反序列化:将流数据读取出来:ObjectInputStream
Implements Serializable实现序列化接口
序列化和反序列化考点:
1):将对象--->流对象----->对象,该对象所在的类要实现一个标记接口:serializable
多线程有一个关键字:同步机制(synchronized)
2):序列化和反序列化生产的版本id不一致的时候,会出现异常
3):transient:修饰的变量不会被序列化
Properties:属性集合类,该类继承自Hashtable<k,v>,该类属于Map集合
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) {
Properties p = new Properties();
p.put("李沁","22");
p.put("宋茜","23");
p.put("高圆","21");
Set<Object> keySet = p.keySet();
for(Object key:keySet){
System.out.println(key+"="+p.get(key));
}
System.out.println("--------------------------------");
Set<String> keySet1 = p.stringPropertyNames();
for(String key:keySet1){
String value = p.getProperty(key);
System.out.println(key+"="+value);
}
}
}
- 【IO流】IO框架
- IO流呀IO流
- 字符IO&数据流IO&对象流IO
- io流
- io流
- IO流
- IO流
- IO 流
- IO流
- io流
- IO流
- io流
- IO流
- IO流
- IO流
- IO流
- IO流
- IO流
- cmd设置ip地址和dns
- SpringBoot查询的结果按视图结果展示结果
- centos7 下离线安装php7
- 全排列(模板实现)
- 欢迎使用CSDN-markdown编辑器
- IO流
- log4net按照日志等级生成相应的日志文件(多文件配置)
- 我们一起学ABAP(03)~内表、工作区(Work Area)和标题行(Header Lin)
- debain 配置IP和DNS
- android截长屏后保存
- 数据库实验(五):二叉树的顺序存储
- CSS3动画之loading-1
- Intents和 Intent Filters详解
- 序时簿表格融合