一,使用FileWriter和FileReader读写文件

import java.io.*; public class JavaApplication2 { /** * @param args the command line arguments */ public static void main(String[] args) throws FileNotFoundException, IOException { FileWriter fw = new FileWriter("test.txt"); fw.write("dddd");//直接这样就行..他会自动转换为其Unicode编码..或者fw.write((int)c);强制转换一下也行 fw.append("wwwwww"); fw.flush(); fw.close(); FileReader fr = new FileReader("test.txt"); int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch); } } }二,多种读取文件的方式示例

1、按字节读取文件内容
     2、按字符读取文件内容
     3、按行读取文件内容
     4、随机读取文件内容

package readFile; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.io.Reader; public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 * @param fileName 文件的名 */ public static void readFileByBytes(String fileName){ File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while((tempbyte=in.read()) != -1){ System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); //一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); ReadFromFile.showAvailableBytes(in); //读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1){ System.out.write(tempbytes, 0, byteread); } } catch (Exception e1) { e1.printStackTrace(); } finally { if (in != null){ try { in.close(); } catch (IOException e1) { } } } } /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 * @param fileName 文件名 */ public static void readFileByChars(String fileName){ File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1){ //对于windows下,rn这两个字符在一起时,表示一个换行。 //但如果这两个字符分开显示时,会换两次行。 //因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。 if (((char)tempchar) != 'r'){ System.out.print((char)tempchar); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } try { System.out.println("以字符为单位读取文件内容,一次读多个字节:"); //一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); //读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars))!=-1){ //同样屏蔽掉r不显示 if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != 'r')){ System.out.print(tempchars); }else{ for (int i=0; i<charread; i++){ if(tempchars[i] == 'r'){ continue; } else{ System.out.print(tempchars[i]); } } } } } catch (Exception e1) { e1.printStackTrace(); }finally { if (reader != null){ try { reader.close(); } catch (IOException e1) { } } } } /** * 以行为单位读取文件,常用于读面向行的格式化文件 * @param fileName 文件名 */ public static void readFileByLines(String fileName){ File file = new File(fileName); BufferedReader reader = null; try { System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; int line = 1; //一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null){ //显示行号 System.out.println("line " + line + ": " + tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null){ try { reader.close(); } catch (IOException e1) { } } } } /** * 随机读取文件内容 * @param fileName 文件名 */ public static void readFileByRandomAccess(String fileName){ RandomAccessFile randomFile = null; try { System.out.println("随机读取一段文件内容:"); // 打开一个随机访问文件流,按只读方式 randomFile = new RandomAccessFile(fileName, "r"); // 文件长度,字节数 long fileLength = randomFile.length(); // 读文件的起始位置 int beginIndex = (fileLength > 4) ? 4 : 0; //将读文件的开始位置移到beginIndex位置。 randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; //一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 //将一次读取的字节数赋给byteread while ((byteread = randomFile.read(bytes)) != -1){ System.out.write(bytes, 0, byteread); } } catch (IOException e){ e.printStackTrace(); } finally { if (randomFile != null){ try { randomFile.close(); } catch (IOException e1) { } } } } /** * 显示输入流中还剩的字节数 * @param in */ private static void showAvailableBytes(InputStream in){ try { System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String fileName = "D:/t.txt"; ReadFromFile.readFileByBytes(fileName); ReadFromFile.readFileByChars(fileName); ReadFromFile.readFileByLines(fileName); ReadFromFile.readFileByRandomAccess(fileName); } }

转载于:https://www.cnblogs.com/JPAORM/archive/2012/03/26/2510021.html

【java】各种对文件,读写的方法及小例子相关推荐

  1. java流与文件——读写二进制数据(DataOutput + DataInput)

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--读写二进制数据(DataOutput + DataInput)的相关知识: 0.2) ...

  2. Java实现Excel文件读写

    目录 一.简介 二.maven依赖 三.工具类ExcelUtil 四.测试 4.1.EmployeeVo 4.2.写入数据到Excel 4.3.从Excel读取数据 结语 一.简介   HSSFWor ...

  3. php原生读取excel文件夹,原生php实现excel文件读写的方法分析php技巧

    这篇文章主要介绍了原生php实现excel文件读写的方法,结合实例形式分析了采用原生php针对Excel进行读写操作的相关实现方法与操作注意事项,需要的朋友可以参考下 本文实例分析了原生php实现ex ...

  4. php 原生 excel,关于原生php实现excel文件读写的方法

    这篇文章主要介绍了原生php实现excel文件读写的方法,结合实例形式分析了采用原生php针对Excel进行读写操作的相关实现方法与操作注意事项,需要的朋友可以参考下 本文实例分析了原生php实现ex ...

  5. java notify视频_一个很好的小例子来演示java中的wait()和notify()方法

    任何人都可以在 java中为我提供一个很好的小例子演示wait()和notify()功能.我尝试使用下面的代码,但它没有显示我的预期. public class WaitDemo { int i = ...

  6. python按行读取文件效率高吗_Python按行读取文件的实现方法【小文件和大文件读取】...

    本文实例讲述了Python按行读取文件的实现方法.分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #func ...

  7. Java中List集合的addAll方法的小坑

    Java中List集合的addAll方法的小坑 遇到的问题 已有一个封装类的ArrayList的集合,命名为firstList,现在需要把firstList中的值复制给另一个List,另一个List命 ...

  8. php函数的默认值,php函数指定默认值方法的小例子

    php函数指定默认值方法的小例子 本节内容: php函数指定默认值 在php编程中,为自定义函数设定默认值,当用户调用该函数时,如果不给参数指定值,参数会用默认值顶替. 例1, 复制代码 代码如下: ...

  9. HTML5文件上传域的小例子

    先上图 文件上传进度条.获取上传的文件信息.读取图片绑定到img元素之类的 代码 <!DOCTYPE html><html> <head><meta char ...

最新文章

  1. 感动!盲人计算机科学家研发语音浏览器,致力科技改善盲人生活
  2. Windows Server2003 sp2重装IIS后无法浏览asp.net网页解决方法
  3. mysql error 1442_MySQL错误代码为err[1442]的解决总结_MySQL
  4. 快速学习Android开发知识点总结(磨砺营马剑威Android)
  5. 用代码,打造创意新世界!【Innovation 2021】网易应用创新开发者大赛正式开赛!
  6. Teams新功能更新【六月底】Microsoft Teams: Music on Hold
  7. 2.6.24及以上版本内核裁剪后启动黑屏的解决办法
  8. 网络通道数2的倍数_限流笔记-通道限流(二)
  9. 修改软件服务器json返回数据格式,AngularJS处理服务器端返回的JSON数据的格式问题...
  10. Linux学习笔记---使用BusyBox创建根文件系统(三)
  11. Leetcode 第133场周赛解题报告
  12. labview虚拟心电监测系统_虚拟心电监护系统软件设计
  13. linux 外接网卡驱动下载,绿联USB外置显卡+网卡驱动程序
  14. python将ppt文件转换为jpg图片
  15. 金融贷款逾期模型 -- 029
  16. JavaEE | 集合之HashMap与ConcurrentHashMap(看完多线程后补充)
  17. Apache与Nginx虚拟机的三种访问+非简单请求+跨域知识点整理
  18. 多元线性回归的梯度下降
  19. 【AIGC使用教程】AutoGPT 安装使用完全教程
  20. php扩展ts和nts,浅谈php的TS和NTS的区别

热门文章

  1. 使用PHP对word文档进行操作的方法
  2. 【Tensorflow深度学习】Tensorflow2.0GPU版极简安装
  3. 从零开始带你部署springboot项目到ubuntu服务器05
  4. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
  5. Flask中数据库的应用
  6. 整理了10个行业的30份可视化大屏模板,可直接拿走套用
  7. 做报表的朋友偷偷告诉我月薪5w的秘密:让报表动起来
  8. 构建springboot微服务聚合工程
  9. 帆软报表决策系统重置用户密码插件
  10. Object-C使用NSLog打印日志