1. public static void readFile(String fileName){
  2. File file = new File(fileName);
  3. if(file.exists()){
  4. try {
  5. FileInputStream in = new FileInputStream(file);
  6. DataInputStream dis=new DataInputStream(in);
  7. byte[] itemBuf = new byte[20];
  8. //市场编码
  9. dis.read(itemBuf, 0, 8);
  10. String marketID =new String(itemBuf,0,8);
  11. //市场名称
  12. dis.read(itemBuf, 0, 20);//read方法读取一定长度之后,被读取的数据就从流中去掉了,所以下次读取仍然从 0开始
  13. String marketName =new String(itemBuf,0,20);
  14. //上一交易日日期
  15. dis.read(itemBuf, 0, 8);
  16. String lastTradingDay = new String(itemBuf,0,8);
  17. //当前交易日日期
  18. dis.read(itemBuf, 0, 8);
  19. String curTradingDay = new String(itemBuf,0,8);
  20. //交易状态
  21. dis.read(itemBuf, 0, 1);
  22. String marketStatus = new String(itemBuf,0,1);
  23. //交易时段数
  24. short tradePeriodNum = dis.readShort();
  25. System.out.println("市场代码:"+ marketID);
  26. System.out.println("市场名称:"+ marketName);
  27. System.out.println("上一交易日日期:"+ lastTradingDay);
  28. System.out.println("当前交易日日期:"+ curTradingDay);
  29. System.out.println("当前交易日日期:"+ curTradingDay);
  30. System.out.println("交易状态:"+ marketStatus);
  31. System.out.println("交易时段数:"+ tradePeriodNum);
  32. } catch (IOException e) {
  33. // TODO Auto-generated catch block
  34. e.printStackTrace();
  35. }finally{
  36. //close
  37. }
  38. }
  39. }
/**
  * 随机读取文件内容
  */
 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) {
    }
   }
  }
 }

Java读取二进制文件的方式的更多相关文章

  1. Java读取配置文件的方式

    Java读取配置文件的方式-笔记 1       取当前启动文件夹下的配置文件   一般来讲启动java程序的时候.在启动的文件夹下会有配置文件 classLoader.getResource(&qu ...

  2. JAVA读取PROPERTIES文件方式一

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  3. java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)

    1.实现目标 读取文件,将文件中的数据一行行的取出. 2.代码实现 1).方式1: 通过BufferedReader的readLine()方法. /** * 功能:Java读取txt文件的内容 步骤: ...

  4. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  5. Java 读取 .properties 文件的几种方式

    Java 读取 .properties 配置文件的几种方式   Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 ...

  6. spring利用注解方式实现Java读取properties属性值

    1. 建立properties文件:我在resource下面建立一个config文件夹,config文件夹里面有mytest.properties文件,文件内容如下: sam.username=sam ...

  7. [Java]读取文件方法大全(转)

    [Java]读取文件方法大全   1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**     ...

  8. Java读取Level-1行情dbf文件极致优化(3)

    最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...

  9. Java读取Level-1行情dbf文件极致优化(2)

    最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...

随机推荐

  1. debian安装图形界面,使用mstsc远程登录

    环境:debian 10.2 更新软件列表 apt-get update 安装最基本的gnome图形相关软件 apt install x-window-system-core gnome-core 安 ...

  2. ssh框架中的分页查询

    ssh中的分页查询是比较常用的,接下来我用代码来介绍如何实现一个分页查询 首先建立一个Model用来储存查询分页的信息 package com.haiziwang.qrlogin.utils; imp ...

  3. Uep的confirm和alert弹窗

    $.confirm("确认删除", "确定删除所选服务么?", function() { ajaxgrid.delCheckedRecords(); var g ...

  4. P3956 棋盘

    P3956 棋盘 题解 注释都在代码里了 这道题可以用DFS做,记忆化搜索,维护一个money[ ][ ] 表示到达当前节点的最小花费 不需要记录VIS,因为有一个最小值判断,如果走重复的话一定会得到 ...

  5. AC自动机小记

    不知不觉这篇博客已经被我咕咕咕了一个月了. 也许我写过AC自动机的博客,但我也不知道我写没写过 前情回顾之\(kmp\) \(kmp\)用来解决一个模式串匹配一个文本串的问题,其思路是设置失配指针,找 ...

  6. Maximum Likelihood 最大似然估计

    Maximum Likelihood 最大似然估计 这个算法解决的问题是,当我们知道一组变量的密度分布函数与从总体采样的个体的时候,需要估计函数中的某些变量. 假设概率密度函数如下: 一般来说,为了计 ...

  7. c# VirtualKeys

    /// <summary> /// Enumeration for virtual keys taken from http://www.pinvoke.net/default.aspx/ ...

  8. getApplication()和getApplicationContext()区别

    二者使用结果相同,我们写个代码分别打印二者返回结果,发现两个方法获取的是同一个对象. public class MainActivity extends Activity { @Override pr ...

  9. JS BOM(浏览器对象)

    BOM即浏览器对象模型,它包括如下一些对象! (一)screen对象,Screen 对象中存放着有关显示浏览器屏幕的信息. 常见的属性有: availHeight:返回显示屏幕的高度 availWid ...

  10. Python日期存入elasticsearch的坑

    今天在消费kafka数据到elasticsearch(以下简称es)中的时候遇到一个问题,也是一个坑,折腾了半天,后来发现得来全不费工夫,全是白忙活啊!!! 问题如下: kafka数据中有一个字段是时 ...