有关I/O流的一些小程序
来源:互联网 发布:plc模拟仿真软件 编辑:程序博客网 时间:2024/06/05 19:56
今天贴一些有关于java I/O流的一些简单程序,方便大家理解和掌握,如果大家有什么不理解的,可以看我之前发过的有关I/O流的博客。
第一个(读写基本数据类型):
import java.io.*;public class NumberExample{ public static void main(String args[]) { int a1=12,a2=1180; long b=808080; float x1=3.14F,x2=12.456F; double d=1234.9876; boolean boo1=true,boo2=false; char c='我'; File f=new File("D://a.txt"); //创建文件。 try { FileOutputStream fos=new FileOutputStream("D://a.txt"); // 创建指向f文件输出流 DataOutputStream out_data=new DataOutputStream(fos); // 创建指向fos 的数据输出流 out_data.writeInt(a1); // out_data将数据a1写入到文件 out_data.writeInt(a2); // out_data将数据a2写入到文件 out_data.writeLong(b); // out_data将数据b写入到文件 out_data.writeFloat(x1); // out_data将数据x1写入到文件 out_data.writeFloat(x2); // out_data将数据x2写入到文件 out_data.writeDouble(d); // out_data将数据d写入到文件 out_data.writeBoolean(boo1); // out_data将数据boo1写入到文件 out_data.writeBoolean(boo2); // out_data将数据boo2写入到文件 out_data.writeChar(c); // out_data将数据c写入到文件 } catch(IOException e){ System.out.print("wengjian"); } try { FileInputStream fis=new FileInputStream("D:\\a.txt");//【代码11】 // 创建指向f文件输入流 DataInputStream in_data=new DataInputStream(fis); // 创建指向fis 的数据输入流 System.out.println(in_data.readInt());// in_data读取int整数 System.out.println(in_data.readInt()); // in_data读取int整数 System.out.println(in_data.readLong());// in_data读取long整数 System.out.println(in_data.readFloat()); // in_data读取float数 System.out.println(in_data.readFloat());// in_data读取float数 System.out.println(in_data.readDouble());// in_data读取double数 System.out.println(in_data.readBoolean());// in_data读取boolean数据 System.out.println(in_data.readBoolean()); // in_data读取boolean数据 System.out.print(in_data.readChar());// in_data读取char数据 } catch(IOException e){System.out.print("duqu");} }}
第二个(对象的读写):
import java.util.*;import java.io.*;public class ObjectExample{ public static void main(String args[ ]) { Calendar calendar1=Calendar.getInstance(); // 创建一个日历对象 Calendar calendar2=Calendar.getInstance(); // 创建一个日历对象 calendar1.set(1949,9,1); // 将日历时间设置为1949年10月1日,注意9表示十月 calendar2.set(2005,9,1); try { File f=new File(“a.txt”); // 创建一个名字为"a.txt"的文件 FileOutputStream fileOut=new FileOutputStream(f); // 创建指向文件f的文件输出流 ObjectOutputStream objectOut=new ObjectOutputStream(fileOut); // 创建指向文件fileOut的对象输出流 objectOut.writeObject(calendar1); // objectOut写对象calendar1到文件 objectOut.writeObject(calendar2); // objectOut写对象calendar2到文件 FileInputStream fileIn=new FileInputStream(f); // 创建指向文件f的文件输入流 ObjectInputStream objectIn = new ObjectInputStream(fileIn); // 创建指向文件fileIn 的对象输入流 Calendar cloneCalendar1=(Calendar) objectIn.readObject(); // objectIn读出对象 Calendar cloneCalendar2=(Calendar) objectIn.readObject(); // objectIn读出对象 cloneCalendar1.setTime(new Date()); cloneCalendar2.set(9999,9,1); int 年=calendar1.get(Calendar.YEAR), 月=calendar1.get(Calendar.MONTH)+1, 日=calendar1.get(Calendar.DAY_OF_MONTH); System.out.printf("\ncalendar1的日期:%d-%d-%d",年,月,日); 年=calendar2.get(Calendar.YEAR); 月=calendar2.get(Calendar.MONTH)+1; 日=calendar2.get(Calendar.DAY_OF_MONTH); System.out.printf("\ncalendar2的日期:%d-%d-%d",年,月,日); 年=cloneCalendar1.get(Calendar.YEAR); 月=cloneCalendar1.get(Calendar.MONTH)+1; 日=cloneCalendar1.get(Calendar.DAY_OF_MONTH); System.out.printf("\ncloneCalendar1的日期:%d-%d-%d",年,月,日); 年=cloneCalendar2.get(Calendar.YEAR); 月=cloneCalendar2.get(Calendar.MONTH)+1; 日=cloneCalendar2.get(Calendar.DAY_OF_MONTH); System.out.printf("\ncloneCalendar2的日期:%d-%d-%d",年,月,日); } catch(Exception event) { System.out.println(event); } }}
第三个(针对RandomAccessFile):
import java.io.*;public class RandomExample{ public static void main(String args[])//你好! { File f=new File("hello.txt"); try{ RandomAccessFile random=new RandomAccessFile(f,”rw”); // 创建指向文件f的random对象 random.seek(0); // 将random的读取位置定位在文件内容的开始处 long m=random.length(); while(m>0) { m=m-1; random.seek(m);// 将random的读取位置定位在距文件开头m个字节 int c=random.readByte(); if(c<=255&&c>=0) { System.out.print((char)c); } else { m=m-1; random.seek(m); // 将random的读取位置定位在距文件开头m个字节 byte cc[]=new byte[2]; random.readFully(cc); System.out.print(new String(cc)); } } long forthEndPosition=0; int forth=1; byte n=-1; while((random.read())!=-1&&(forth<=4)) // random读取一个字节的数据 { if(n=='\n') { forthEndPosition=random.getFilePointer(); forth++; } } random.seek(m); // 将random的读取位置定位在文件内容的末尾 long endPosition=random.getFilePointer(); // 获取当前random的读取位置 long mark=endPosition; int j=1; while((mark>=0)&&(j<=6)) { mark--; random.seek(mark); n=random.readByte(); if(n=='\n') { endPosition=random.getFilePointer(); j++; } } random.seek(forthEndPosition);// 将random的读取位置定位在距文件开头forthEndPosition个字节处 long startPoint=random.getFilePointer(); while(startPoint<endPosition-1) { n=random.readByte(); System.out.print((char)n); startPoint=random.getFilePointer(); } random.close(); } catch(IOException ee){} }}
seek(long pos):设定读写指针的位置,与文件开头相隔pos个字节数
length():返回文件包含的字节数。
该类的构造函数有两个,一个是RandomAccessFile(File f,String mode);
另一个是RandomAccessFile(String name,String mode)//参数name是被访问的文件的路径。
mode只可以选值"r","rw",“r”表示程序仅仅是读文件,“rw”表示程序需要同时读写文件。此时要注意的是,RandomAccessFile类不支持只写文件的模式,因此把mode设置为"w"是非法的。
0 0
- 有关I/O流的一些小程序
- 有关LINUX I/O 的一些学习笔记
- C++文件流I/O小程序
- Linux I/O 重定向的一些小技巧
- Linux I/O重定向的一些小技巧
- 转贴:Linux I/O重定向的一些小技巧
- 技巧:Linux I/O重定向的一些小技巧
- 技巧:Linux I/O重定向的一些小技巧
- Linux I/O重定向的一些小技巧
- 技巧:Linux I/O重定向的一些小技巧
- 技巧:Linux I/O重定向的一些小技巧
- Linux I/O重定向的一些小技巧
- Unix/Linx 文件I/O的一些小思考
- 技巧:Linux I/O重定向的一些小技巧
- I/O 流的一些自我总结
- 文件I/O--一个小程序
- C语言中I/O流的一些疑惑
- Java I/O流的一些典型用法
- 纯字符串assemble和parser比较,fastjson 比 json要至少慢5倍
- 毕业5年决定人的一生
- 公司内部邮箱服务器发送邮件 java版
- POJ 2157 Maze
- 【数据挖掘案例实践】Loan Status
- 有关I/O流的一些小程序
- 学习data mining的7个步骤
- 分解质因数
- phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析
- 每一个努力的人,都值得被认可
- Oracle中计算年龄SQL语句
- linux下的各种端口用途
- mybatis报错invalid types () or values ()解决方法
- 算法设计与分析——任务分配问题