import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;

/**
 * 测试文件读取
 * @author Administrator
 *
 */
public class FileTest {
 public static void main(String[] args){
  try {
   //String teststr=test();
   FileWriter fw = new FileWriter("c:/test.txt");
   BufferedWriter bw = new BufferedWriter(fw);

bw.write("我爱大海,我爱蓝天;我爱大海,我爱蓝天/r/n");
   bw.write("我爱大海,我爱蓝天;我爱大海,我爱蓝天/r/n");
   bw.flush();
   fw.close();
   bw.close();
   //逐行读取文件
   FileReader fr = new FileReader("c:/test.txt");
   BufferedReader br = new BufferedReader(fr);
   String strline =br.readLine();
   System.out.println(strline);
   fr.close();
   br.close();
   //整个读取文件
   FileInputStream fis = new FileInputStream("c:/test.txt");
   byte[] bt =new byte[1024];
   fis.read(bt);
   fis.close();
   String filestr = new String(bt);
   filestr =filestr.trim();
   HashMap HZ = new HashMap();
   for(int i=0;i<filestr.length();i++){
    String temp =filestr.substring(i,i+1);
    if(HZ.containsKey(temp)){
     int cs =Integer.valueOf(HZ.get(temp).toString());
     HZ.put(temp, cs+1);
    }else{
     HZ.put(temp, 1);
    }
   }
   HZ.toString();
   System.out.println(HZ.toString());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }}

在文件读取中可以使用FileReader和FileInputStream两个类这两个类的区别为

FileInputStream是以字节流方式读取,FileReader是把文件转换为字符流读入。InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出来的是char数组或者String,使用InputStream读取出来的是byte数组

FileInputStream类以二进制输入/输出,I/O速度快且效率高,但是它的read()方法读到的是一个字节(二进制数据),很不利于人们阅读。而FileReader类弥补了这个缺陷,可以以文本格式输入或输出,非常方便。例如,可以使用while((ch=filereader.read())!=-1)循环来读取文件;可以使用BufferedReader的readLine()方法一行一行的读取文本。

FileReader与InputStreamReader涉及编码转换(指定编码方式或者采用操作系统默认编码)时,可能在不同的平台上出现乱码现象。而FileInputStream以二进制方式处理,不会出现乱码现象。

FileReader与FileWriter使用一例相关推荐

  1. java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》

    FileReader和FileWriter的源码相对简单,下面通过分析它们的源码以更好地进行理解这两个流 1. FileReader FileReader实现了读取底层的字节数据并将其转换为字符数据的 ...

  2. Java IO: FileReader和FileWriter

    转载自  Java IO: FileReader和FileWriter 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍FileRea ...

  3. Java FileReader与FileWriter讲解

    FileReader与FileWriter讲解 Reader int read() 读取单个字符.作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff)(2个字节的Unico ...

  4. FileReader 和 FileWriter(Second)

    一.简介 本人大二计算机专业生,Java在b站大学的动力节点(对初学者非常友好)自学的,毕竟大学嘛,懂的都懂,不能依靠老师,还得自己来,在本章节内如中分享我自学IO流这章的的学习笔记,毕竟学习路上从不 ...

  5. Java基础巩固系列 FileReader和FileWriter(字符流)

    代码示例: public class TestFileReaderWriter {/** 使用FileReader FileWriter 可以实现文本文件的复制* 对于非文本文件(视频文件.音频文件. ...

  6. 字符流(FileReader,FileWriter,BufferedReader,BufferedWriter)

    字符流(FileReader,FileWriter,BufferedReader,BufferedWriter) 字符流只能对纯文本进行操作,所以输出不会乱码,字符流又分为字符输输入流与字符输出流,他 ...

  7. FileReader与FileWriter

    FileReader与FileWriter分别继承Reader和Writer,以字符为单位广泛用于文件操作的节点流.FileReader类用于从文本文件读数据,每次读入一个字符或者一个字符数组;Fil ...

  8. FileInputStream、FileReader、FileWriter和File

    FileInputStream提供了对文件的字节读取 用于读取诸如图像数据之类的原始字节流 如:FileInputStream fis=new FileInputStream(new File(&qu ...

  9. IO-3(Reader、Writer、编码、FileReader、FileWriter)

    1. Reader 字符输入流 read(0:读取单个字符返回 read(char[]):将数据读到数组中,返回读取的个数 2. Writer 字符输入流 已知子类: BufferedWriter:高 ...

最新文章

  1. 九章算法【总结】Java 搞定链表-面试常考题目精选
  2. JAVA Spring Cloud 注册中心 Eureka 相关配置
  3. xshell连不上虚拟机linux的解决办法(用的默认NAT模式)
  4. ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
  5. 简单配置 docker swarm
  6. 【飞秋】OR层代码组织介绍
  7. git-bug分支-git-stash-工作代码与bug解决同时处理时解决模拟
  8. 深度学习(六十四)Faster R-CNN物体检测
  9. drupalchina--如何翻译及如何上传翻译的内容?
  10. Leanote使用mysql_搭建个人Leanote云笔记
  11. sphinx 入门_Sphinx搜索引擎入门
  12. 对用户密码进行加盐处理
  13. Android第三十三期 - Dialog的应用
  14. Oracle null 处理
  15. Java 常见异常类
  16. WORD出错:设置为稿纸后,右键的字体、段落项目变灰
  17. html返回顶部按钮图片,goToTop(回到顶部)按钮的制作
  18. Android学习日记(yzy):Notification的简单运用
  19. 量化投资python_量化投资与python
  20. 报错:org.springframework.cloud.gateway.support.NotFoundException: Unable to find instance for localhos

热门文章

  1. Mac多版本jdk的切换
  2. Web(servlet) 应用程序将其发布在 Web AppServer 服务器(war包)
  3. 《Android源码设计模式解析与实战》读书笔记(十二)
  4. 浏览器兼容性笔记(转)
  5. Javascript TypedArray 解惑:Uint8Array 与 Uint8ClampedArray 的区别
  6. gitlab群组多项目下载
  7. 2018CCPC吉林赛区 hdu6555~hdu6566
  8. 成本优化之使用P2P的方案的需要了解的本地SDK的背后的原理
  9. 【C语言】-关于strlen的介绍以及三种模拟实现的方法
  10. 程序员转行算法工程师-四个月总结