ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:36.50KB ,
资源ID:1986752      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1986752.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java IO学习心得.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java IO学习心得.docx

1、java IO学习心得本文由我司收集整编,推荐下载,如有疑问,请与我司联系java IO 学习心得public static void main(String args) File file = new File(“E:/tmp/test.txt”); / 传入路径,实例化 file 对象 try file.createNewFile(); / 创建新文件 catch (IOExceptione) e.printStackTrace(); 将在 E:tmp 中创建一个 test.txt 的文件(该文件大小为0byte)。注意:在传入路径的时候要么使用“/”,要么使用”表示一个斜杠。 publi

2、cstatic void main(String args) File file = new File(“E:” + File.separator + “tmp” +File.separator + “test.txt”); if (file.exists() if (file.delete() System.out.println(“文件删除成功!”); else try if (file.createNewFile() System.out.println(“文件创建成功!”); catch (IOException e) e.printStackTrace(); 从程序的运行结果可以发现

3、,所有的操作并不会立即执行,因为 java 是通过 JVM 与底层进行交互的,因此所有的操作都必须经过 JVM,因此有可能产生延迟。 public static void print(File file) /该方法被递归调用 if (file != null) / 判断对象是否为空 if (file.isDirectory() Filefiles = file.listFiles(); / 列出全部的文件 if (files != null) /因为有一些文件是操作系统不允许访问的 for (File file2 : files) print(file2); /递归调用 else System

4、.out.println(file); RandomAccessFile 类: public RandomAccessFile(Stringname,String mode)throws FileNotFoundException public RandomAccessFile(Filefile,String mode)throws FileNotFoundException “r” 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。 “rw” 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。 “rws” 打开以便读取和写入,对于“rw”,还要

5、求对文件的内容或元数据的每个更新都同步写入到底层存储设备。“rwd” 打开以便读取和写入,对于 “rw”,还要求对文件内容的每个更新都同步写入到底层存储设备。 public static void main(String args) throws IOException Filefile = new File(“E:” + File.separator + “tmp” + File.separator + “test.txt”);RandomAccessFile rdf = new RandomAccessFile(file, “rw”);/ 读写模式,文件不存在则创建之 String nam

6、e = null; int age = 0; name = “zhangsan”; / 字符串长度为 8 字节age = 30; / 整数的长度为 4 字节 rdf.writeBytes(name); rdf.writeInt(age); name = “lisi本文由我司收集整编,推荐下载,如有疑问,请与我司联系“; age = 31; rdf.writeBytes(name); rdf.writeInt(age); name = “wangwu “; age = 32;rdf.writeBytes(name); rdf.writeInt(age); rdf.close();/ 关闭 pub

7、lic static voidmain(String args) throws IOException File file = new File(“E:” + File.separator +“tmp” + File.separator + “test.txt”); RandomAccessFile rdf = new RandomAccessFile(file,“r”); / 只读模式 String name = null; int age = 0; byte b = new byte8; / 开辟比特数组 / 读取第二个人的信息 rdf.skipBytes(12); / 跳过第一个人的信息

8、 for (int i = 0; ib.length; i+) bi = rdf.readByte(); / 读取一个字节 name = new String(b); / 将读取出来的比特数组变为字符串 age = rdf.readInt(); System.out.println(“第二个人的信息-”+”姓名:” + name + “年龄:” + age); /读取第一个人的信息 rdf.seek(0); /指针回到文件的开头 for (int i = 0; i b.length; i+) bi = rdf.readByte(); name = new String(b);age = rdf

9、.readInt(); System.out.println(“第一个人的信息-”+”姓名:” + name + “年龄:”+ age); /读取第三个人的信息 rdf.skipBytes(12); /此时文件指针位于第一个人的末尾for (int i = 0; i b.length; i+) bi = rdf.readByte(); / 读取一个字节 name = newString(b); age = rdf.readInt(); System.out.println(“第三个人的信息-”+”姓名:” + name+ “年龄:” + age); rdf.close(); / 关闭 以上的代

10、码操作起来比较复杂,可以通过javaio 中的流来操作使其简便。 字节流和字符流 什么是流?在程序中所有的数据都是以流的方式进行传输或者保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就需要使用输出流来完成。InputStream、OutputStream、Writer 和 Reader 都是抽象类。IO 操作属于资源操作,操作完成之后必须关闭,否则容易出现未知错误。 字节流操作的是比特类型的数据,以 byte 数组为准,主要操作类就是 OutputStream(字节输出流)、InputStream(字节输出流) 整个 IO 包中字节输出流的最大父类,该类

11、是一个抽象类,如果想要使用此类,则必须通过子类实例化对象。 public static void main(String args)throws IOException /1.使用 File 类找到一个文件 File file = newFile(“E:”+File.separator+”tmp”+File.separator+”test.txt”); /2.通过父类实例化对象FileOutputStream fos = new FileOutputStream(file); /3.进行写操作(byte 数组) String本文由我司收集整编,推荐下载,如有疑问,请与我司联系info = “不

12、悔梦归处,只恨太匆匆!”; byte b = info.getBytes(); /将 String 转化为 byte数组 fos.write(b); /4.关闭输出流 fos.close(); 运行结果: String info = “不悔梦归处,只恨太匆匆!”; byte b = info.getBytes(); /将 String 转化为 byte 数组 for (int i =0; i b.length; i+) fos.write(bi); /每次只写入一个字节 如果文件不存在则创建之,如果文件存在则覆盖之。如果想要进行追加的话,需要使用 FileOutPutStream的另一个构造方

13、法:public FileOutputStream(File file, boolean append) 如果想要字符串换行将字符串改变成如下: /1.使用 File 类找到一个文件 File file = newFile(“E:”+File.separator+”tmp”+File.separator+”test.txt”); /2.通过父类实例化对象FileInputStream fis = new FileInputStream(file); /3.进行读操作 byteb = newbyte1024; fis.read(b); /4.关闭输出流 fis.close(); System.o

14、ut.println(“内容是:”+newString(b); 文件没有几行,但是输出的结果中却有大量的空格,问题就在于我们开辟了一个 1024 大小的区域。 修改以上程序为以下: /1.使用 File 类找到一个文件File file = new File(“E:”+File.separator+”tmp”+File.separator+”test.txt”); /2.通过父类实例化对象 FileInputStream fis = new FileInputStream(file); /3.进行读操作 byteb =new byte1024; int len = fis.read(b); /

15、4.关闭输出流 fis.close(); System.out.println(“长度:”+len); System.out.println(“内容是:”+new String(b,0,len); 运行结果: 改正程序后一切正常了。但是以上的代码还存在问题:文件明明很小,但是却开辟了 1024字节肯定很浪费,能不能根据文件的大小开辟数组空间呢? /1.使用 File 类找到一个文件 File file = new File(“E:”+File.separator+”tmp”+File.separator+”test.txt”); /2.通过父类实例化对象 FileInputStream fis = new FileInputStream(file); /3.进行读操作byteb = new byte(int) file.length();/数组的大小由文件大小决定 int len = fis.read(b);/4.关闭输出流 fis.close(); System.out.println(“长度:”+len); System.out.println(“内容是:”+ne

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1