Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行

一次分析,归类,理清不同方法之间的异同点。

一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。

InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在

OutputStream 中我们有 FileOutputStream 这个对象。

用FileInputStream 来读取数据的常用方法是:

FileInputStream fstream = new FileInputStream(args[0]);

DataInputStream in = new DataInputStream(fstream);

用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。

完整代码见 Example 1。

用FileOutputStream 来写入数据的常用方法是:

FileOutputStream out out = new FileOutputStream("myfile.txt");

PrintStream p = new PrintStream( out );

用 p.println() 来写入数据,然后用 p.close() 关闭输入。

完整代码见 Example 2。

二在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而

JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。

用FileReader 来读取文件的常用方法是:

FileReader fr = new FileReader("mydata.txt");

BufferedReader br = new BufferedReader(fr);

用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。

完整代码见 Example 3。

用 FileWriter 来写入文件的常用方法是:

FileWriter fw = new FileWriter("mydata.txt");

PrintWriter out = new PrintWriter(fw);

在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写

入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。

完整代码见 Example 4。

Example 1

Java代码

// FileInputDemo

// Demonstrates FileInputStream and DataInputStream

import java.io.*;

class FileInputDemo {

public static void main(String args[]) {

// args.length

java 往文件写值,java文件读写相关推荐

  1. Java 获取文件md5值校验文件

    假如我们想校验两个文件网络传输中是否改变了,或者校验两个文件是否一致可以使用md5校验. 代码: import java.io.FileInputStream; import java.io.Inpu ...

  2. java中pdf写成base64文件流,Java操作pdf文件与Base64编码相互转换与文件流操作

    1.第一步,引入bc包的安装依赖. 在pom.xml中引入. org.bouncycastle bcprov-jdk15on 1.60 引入后reimport一下项目. 2.pdf文件转换成Base6 ...

  3. java com dll_通过COM组件方式实现java调用C#写的DLL文件

    通过Java调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 VS2013 1.新建工程:TestDemo(类库项目)     //根据自己需要取 ...

  4. java 调用.net类库_通过COM组件方式实现java调用C#写的DLL文件

    通过Java调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 VS2013 1.新建工程:TestDemo(类库项目)     //根据自己需要取 ...

  5. Java实现多线程写数据到文件【队列-文件】

    大致流程 先将要写入文件的数据写入到一个队列中,然后单开一个线程专门读取队列数据写入文件,可以保证写入到文件的数据的顺序, 生产者类即多线程写入文件模拟 package com.ldl.test.do ...

  6. java 文件写_java写入文件的几种方法分享

    转自:http://www.jb51.net/article/47062.htm 一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所 ...

  7. java实现读者写者问题_读写者问题-java实现

    读者-写者问题(Readers-Writers problem)也是一个经典的并发程序设计问题,是经常出现的一种同步问题.计算机系统中的数据(文件.记录)常被多个进程共享,但其中某些进程可能只要求读数 ...

  8. 为什么java要你写static,java static关键字理解

    文章大纲: 1.为什么static会有这样的效果? 2.static的使用 3.static误区 4.static面试题 static的魔法效果是: 被static关键字修饰的方法或者变量不需要依赖于 ...

  9. java引用公共类_使用键引用从Java公共类获取值 - java

    我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...

最新文章

  1. 发现WinSRV2003SP1并没有包含ASP+Access的BUG更新
  2. 回归插补法_用均值替换、 回归插补及多重插补进行插补
  3. gorm配置logger显示执行的sql
  4. AAAI 2020 开源论文 | 语义感知BERT(SemBERT)
  5. css知识笔记(五)——css样式设置小技巧
  6. .Net 中的反射(查看基本类型信息) - Part.2
  7. kafka消息队列学习笔记
  8. java比c,Java比C ++更好
  9. wince系统usb刷机工具_中兴B860AV1.2-S905L刷机救砖教程,喜欢的分享一下
  10. docker多个mysql实例_Docker创建运行多个mysql容器的方法示例
  11. 总结:86版五笔输入法
  12. 攻防世界 --> funny_video --> 最完整和正确的解答
  13. Tiny 6410 K9GAG08U0E nand flash移植uboot
  14. 《三重门》作者的机灵与人物的笨拙
  15. 关于MyEclipse的servers和WTPservers
  16. 三维建模渲染——铁链束缚的花朵
  17. 新增计算机专硕!数二英二,只有数据结构!合肥学院招80人!
  18. laravel常见错误(一):The page has expired due to inactivity. Please refresh and try again.
  19. 【软件测试】软件测试分类
  20. [转]libsvm介绍及使用

热门文章

  1. angularjs中$http模块发送post请求request payload转form data
  2. 列举当前用户或指定用户的所有表,所有字段,以及所有约束
  3. cnetos7 vncserver安装与配置
  4. Exchange 发送方式(Send As)和代表发送(Send on behalf)的区别
  5. java重载和重载的区别
  6. Maven 学习之旅
  7. [文摘20071113]十四项心理定律
  8. PAT A1065 A+B and C (64bit) (20 分)
  9. mysql node
  10. 在微信小程序里自动获得当前手机所在的经纬度并转换成地址