java的文件IO编程知识总结
来源:互联网 发布:淘宝买烟怎么搜索 编辑:程序博客网 时间:2024/04/27 17:08
1、File类IO包中唯一代表磁盘文件本身的对象。定义了一系列与平台无关的方法来操作文件。能够完成创建,删除,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件的最近修改时间等。
File luo=new File(C:\\Users\\Administrator\\workspace\\test.txt);
2、RandomAccessFile类支持“随机访问”文件。访问文件不希望从头到尾的读取,希望像数据库一样访问一个文本文件。这是最好的选择。(写入,读出,移动读写指针,跳过指定个数位数等)
访问仅限于文件,不可以操作其他IO设备,如网络,内纯映像等。
3、流类建立在四个抽象类之上。InputStream,OutputStream,Reader,Writer。
一般都是通过File类的对象去初始化。
InputStream,OutputStream被设计为字节流类。(字节或者二进制对象)
Reader,Writer被设计为字符流类。(处理字符或者字符串)
字节流具体子类:FileInputStream文件输入流 FileOutputStream文件输出流
字符数据要先使用string.getBytes()转化为字节数据才可以进行读取和写入。
字符流具体子类: FileReader文件输入流 FileWriter文件输出流
可以直接实现对字符的读取和写入。
4、管道流
管道流主要用于两个线程间的通信,也分为字节流(PipeInputStream和PipeOutputStream)与字符流(PipeReader和PipeWriter)两种。
两个对象必须进行连接而产生一个通信管道。一个写一个读,实现两个线程之间的通信。
PipeInputStreamin=new PipeInputStream;
PipeOutputStreamout=new PipeOutputStream();
Out.connect(in); //将两个管道进行连接。
后面就可以实现读写了。
5、ByteArrayInputStream和ByteArrayOutputStream对字节数组进行处理。
字符串要先转化为字节数组。Byte[] src=”abcdefghijk”.getBytes();
6、system.in和system.out分别为InputStream,OutputStream的子类的流对象,属于字节流。显示屏和键盘。
7、打印流(<>标识可选的参数)
PrintStream类
提供了一系列的print和println方法,可以实现将基本数据类型的格式转化为字符串输出。
PrintStream(outputstream Out,<booleanautoflush>,<string encoding>),
对应的还有PrintWriter类。
PrintWriter(OutputStream,<Boolean>)
PrintWriter(writer<,Boolean>)
使用system.out初始化就输出到显示器上。
PrintWriterout=New PrintWriter(system.out)
使用FileWriter对象初始化就输出到文件中。
File f=new File(“c:\\luo.txt”);
PrintWriter out=New PrintWriter(newFileWriter(f));
8、DataInputStream和DataOutputStream提供了与平台无关的数据操作。按固定的格式输出和输入。可以得到java的各种基本数据类型和字符串。方便处理。
DataInputStream Out=new DataInputStream(newFileOutputStream(“luo”));
out.writeDouble(prices[i]);
out.writeChar('\t');
// 写入数目
out.writeInt(units[i]);
out.writeChar('\t');
// 写入产品名称,行尾加入换行符
out.writeChars(descs[i]);
out.writeChar('\n');
数据再按照这个格式去读,便可以实现对数据的存储和处理。输出结果:
9、合并流
FileInputStream in1=new FileInputStream(new File(“c:\\luo.txt”));
FileInputStream in2=new FileInputStream(new File(“c:\\wei.txt”));
FileOutputStream out=newFileOutputStream(new File(“c:\\luowei.txt”));
SequenceInputStream s=new SequenceInputStream(in1,in2);//合为一个输入流
Int c;
While((c=s.read())!=-1)
Out.write(c); //合并两个输入流并输出。
10、字节流与字符流的转换
InputStreamReader和OutputStreamWriter用于字节流与字符流之间的转换。
InputStreamReader:将一个字节流中的字节解码为字符。
OutputStreamWriter:将写入的字符编码成字节后写入字节流。
但是为了避免频繁地转换,不直接使用这两个类,而是使用BufferWriter和BufferRead来包装。
BufferWriter out=new BufferWriter(new OutputStreamWriter(system.out))
BufferRead in =new BufferRead(newInputStreamReader(system.in))
如前所述,system.out和system.in都是字节流。
String str=in.readLine(); //就直接可以读出一个字符串。
11、对象序列化
就是将对象转化为二进制数据流的一种实现,可以方便实现对象的传输和保存。
ObjectInputStream与ObjectOutputStream用于存储和读取对象输入输出的流类。
但是要求读写或者存储的对象必须实现Serializable接口。此接口没有实现任何方法,仅仅是被用作一种标记,以被编译器做特殊处理。
对象的存储:
File f =new File("sdf") ;
OutputStreamoutputFile = new FileOutputStream(f);
ObjectOutputStreamcout = new ObjectOutputStream(outputFile);
cout.writeObject(newPerson("张三",25));
cout.close();
对象的读取:
InputStreaminputFile = new FileInputStream(f);
ObjectInputStreamcin = new ObjectInputStream(inputFile);
Person p =(Person) cin.readObject();
System.out.println(p);
- java的文件IO编程知识总结
- java.io方面的知识总结
- Java IO流知识总结
- Java IO流知识总结
- Java IO 知识概括总结
- java文件IO总结
- 对与java io知识的部分总结
- 关于Java中IO流部分的知识总结
- java io文件读写的总结
- Java文件IO的使用总结
- Java文件知识总结
- 【Java】Java 中IO流知识总结
- Java中的IO流知识总结
- Java中的IO流知识总结 【转】
- Java中的IO流知识总结
- Java中的IO流知识总结
- Java知识总结-IO字符流
- Java知识总结-IO字节流
- Servlet、Filter 和Listener 工作原理
- js获取鼠标位置的各种方法
- C语言中const,volatile,restrict
- Android Studio 中 gradle 构建 堆栈空间不足
- 括号匹配问题
- java的文件IO编程知识总结
- 理解JQuery对象$.html
- JS严格模式的限制
- ubuntu 更新软件
- git工作区和版本库的概念和一个简单的例子
- poj1986 (树链剖分+线段树或者LCA+RMQ)
- 单链表
- eclipse中配置struts2出现There is no Action mapped for namespace [/] and action name [Login] associated w
- spss、R语言、Python数据分析系列(4):python读取外部数据