JAVA中I/O的基础知识
来源:互联网 发布:淘宝开店需要交保证金 编辑:程序博客网 时间:2024/06/06 03:29
JAVA中I/O的基础知识
1.1 File类和流
1.2 文本文件的I/O
- 写数据——PrintWriter
2. 读数据——Scanner
从键盘读取:Scanner in = new Scanner(System.in);
从文件读取:Scanner input = new Scanner(file);
1.3 从Web上读取数据
1. 创建URL对象
try{ URL url = new URL("http://www.google.com/index.html");}catch(MalformedURLException ex) { ex.printStackTrace();}
2. 读取数据
使用URL类中定义的openStream()方法来打开输入流和用输出流创建如下Scanner对象;
Scanner input = new Scanner(url.openStream());
这样就可以从输入流中读取数据了,如同从本地文件中读取一样。
1.4 二进制I/O
文本I/O将数据解释成字符序列,二进制I/O将数据解释成原始的二进制数值。文本在文件中的存储依赖于文件的编码方式。Java自动完成对文本I/O的编码和解码。由于二进制I/O不需要编码和解码,所以,它比文本I/O效率高。
二进制的I/O类:抽象类InputStream是读取二进制数据的根类,抽象类OutputStream是写入二进制数据的根类;
1. 文件的I/O——FileInputStream和FileOutputStream
try( FileoutputStream outpur = new FileOutputStream("temp.dat");) { for (int i = 1,i<=10,i++) output.write(i);}try ( FileInputStream input = new FileInputStream("temp.dat");) { int value;
//输入值为-1意味着文件的结束 while((value = input.read()) != -1) System.out.print(value+"");}首先为文件temp.dat创建了一个FileOutputStream对象,for循环将10个字节值写入文件;然后为文件temp.dat创建了一个FileInputStream对象,读取字节值并在控制台上显示出来。
2.Data类的I/O ——用来读写基本类型数据和字符串
DataInputStream——从数据流读取字节,并且将它们转化为合适的基本类型值或字符串;
DataOutputStream——将基本类型的值或字符串转换为字节,并且将字节输出到数据流;
DataInput接口,定义了读取基本数据类型和字符串的方法(如,readInt、readDouble、readChar、readBoolran和readUTF)。DataOutput接口,定义了输出基本数据类型和字符串的方法(如,writeInt、writeDouble、writeChar、writeBoolean和writeUTF)。
DataInputStream input = new DataInputStream(new FileInpoutStream("in.dat"));DataOutputStream output = new DataOutputStream(new FileOutpoutStream("in.dat"));
这两个类在后台管理了一个缓冲区,根据要求自动从磁盘中读取数据和写入数据(默认缓冲区大小为512个字节),通过减少磁盘读写次数来提高输入和输出的速度。
4.对象I/O——ObjectInputStream和ObjectOutputStream
可以用于读/写可序列化的对象。因为对象包括Data,所以Data类I/O可以被对象I/O代替。其次,为了提高程序的性能,可以如下创建流:
ObjectOutputStream output = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("object.dat")));
5. 随机访问文件——RandomAccessFile类
之前的所有流都是只读或只写的,这些流成为顺序(sequential)流。使用顺序流打开的文件称为顺序访问文件。顺序访问文件的内容不能更新。然而,经常需要修改文件。Java提供了RandomAccessFile类,允许在文件的任意位置上进行读写。使用RandomAccessFile打开的文件成为随机访问文件。
当创建一个RandomAccessFile时,可以指定两种模式("r"或"rw")之一。"r"表明这个数据流是只读的,"rw"表明这个数据流既可以读,也可以写。
RandomAccessFile raf = new RandomAccessFile("test.dat","rw");
- JAVA中I/O的基础知识
- Java I/O系统基础知识
- Java I/O系统基础知识
- Java中I/O流的选择
- Java中复杂的I/O流
- Java中I/O流的应用
- 【转载】Java I/O系统基础知识
- java输入输出--I/O操作基础知识学习
- Java 基础知识之I/O系统
- Java:I/O流基础知识详解
- I/O知识集--1 关于I/O的基础知识
- JAVA的I/O
- Java的I/O
- JAVA的I/O
- Java的I/O
- 新手入门的I/O简单基础知识
- Java中I/O流
- I/O基础知识
- js 性能优化总结
- [leetcode] 382. Linked List Random Node 解题报告
- [leetcode] 309. Best Time to Buy and Sell Stock with Cooldown
- OI算法的时空复杂度及算法模板
- Linux写时拷贝技术(copy-on-write)
- JAVA中I/O的基础知识
- read copy update
- 一道九宫格算法面试题
- [leetcode] 241. Different Ways to Add Parentheses
- 禁止浏览器主页自动跳转hao123等流氓网站
- POJ 2431 贪心
- 198彩娱乐平台主管收有量总代Q1440580
- [Servlet]会话追踪技术
- [leetcode] 35. Search Insert Position