JAVA随笔——File类与热键的使用
来源:互联网 发布:linux 解压命令 zip 编辑:程序博客网 时间:2024/05/17 00:59
数据流和文档操作2
过滤流
抽象的InputStream和OutputStream类允许我们对字串及数字进行读写。为达到这个目的,还需要功能更多的子类。例如:DateInputStream和DataOutputStream允许我们对所有基本的java类型进行读写。
文件流类与抽象的InputStream和OutputStream类相似,这些类也只支持字节级的读写操作。换言之,只能从fin对象中读取字符和字节数组。byte b=fin.read(),他们没有提供专门的数值类型,所以DataInputStream没有办法从一个文件中获取数字。
解决方案:java给流职责分工,某些流(FileInputStream)负责从文件或另一些更特殊的地方读入字节数据。而另一些流
(DataInputStream、PrintWriter)负责将字节“组装”成更有用的数据类型。必须综合运用这两种流,将其合并成所谓的"过滤流(FilteredStreams)",方法是将一个现成的流传递给另一个流的构建器。
数据流
l DataInputStream
l DataOutputStream
//在文件中写入并读出人名及其工资
public class T1 {
public static void main(String[] args) {
String[] name = {"Tom","Jack","Mary"};
double[] salary = {300, 400, 1200};
try{
FileOutputStream fos = new FileOutputStream("res/salary.txt");
DataOutputStream dos = new DataOutputStream(fos);
for(int i=0; i<name.length; i++){
dos.writeUTF(name[i]);
dos.writeDouble(salary[i]);}
dos.close();
fos.close();
FileInputStream fin = new FileInputStream("res/salary.txt");
DataInputStream dis = new DataInputStream(fin);
for(int i=0; i<name.length; i++){
String n = dis.readUTF();
double s = dis.readDouble();
System.out.println(n + " : " + s);}
dis.close();
fin.close();
}catch(Exception e){
e.printStackTrace();
}}}
字节缓冲流
l BufferedInputStream
l BufferedOutputStrem
默认情况下,流不会进行缓冲。即每读一次,都会要求操作系统提供一个字节。通过BufferedInputStream和
BufferedOutputStream对流构建器进行过滤分层,实现缓冲。
1、构造函数:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size) //size:缓冲区的大小
2、代码演示:
BufferedInputStream bis=new BufferedInputStream(System.in);
BufferedInputStream bis=new BufferedInputStream(System.in ,100);
//用缓冲字节流实现文件读写
public class BufferedIOTest {
public static void main(String[] args) {
try{
FileOutputStream fos = new FileOutputStream("res/new.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("good morning!");
dos.writeInt(250);
dos.close();
bos.close();
fos.close();
FileInputStream fis = new FileInputStream("res/new.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
System.out.println(dis.readUTF() + "\n"+ dis.readInt());
dis.close();
bis.close();
fis.close();
}catch(Exception e){
e.printStackTrace();
}}}
- JAVA随笔——File类与热键的使用
- File类与热键的使用
- Java File类的简单说明与使用 -- Java 基础
- JAVA学习随笔(5)-file类基本API随笔
- JAVA随笔——多线程的简介与实现
- JAVA编程思想随笔(二)——标签的使用
- CHotKey热键的使用
- RegisterHotKey 热键的使用
- Java基础课——File类的使用
- Java File类的使用
- Java File类的使用
- JS 快捷键(热键)的设置与使用 学习
- java随笔--接口与类
- 热键与快捷键的区别
- 【随笔】#与 ##的使用含义与区别
- 热键钩子HOOK的使用
- JAVA随笔——Java复习与IO输入输出流
- JAVA随笔——线程的交互
- 技术才是王道
- JAVA随笔——设计模式--装饰模式
- C语言编译全过程
- mysql的一些常用命令 (复习)
- 链表是否是环链
- JAVA随笔——File类与热键的使用
- JAVA随笔——对象序列化与随机文件
- MSDE数据库附加
- 北邮通信土著--非技术路线备忘录
- java线程
- 文件分割合并类(java)
- JAVA随笔——IO包中的其他对象
- PHP学习数组
- linux patch文件制作(转)