欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 将数据加载到内存中的操作

程序员文章站 2022-03-21 12:53:49
将数据加载到内存中1、建立initlistener.javapackage app.util; import java.util.hashmap;import java.util.map; impor...

将数据加载到内存中

1、建立initlistener.java

package app.util; 
import java.util.hashmap;
import java.util.map;
 
import javax.servlet.servletcontextevent;
import javax.servlet.servletcontextlistener;
import javax.servlet.servletexception;
import javax.servlet.http.httpservlet;
 
import org.jboss.logging.logger;
import org.springframework.web.context.contextloader;
import org.springframework.web.context.webapplicationcontext; 
import com.test.resourceservice;
 
/**
 * 加载数据到内存案例
 * @author 浅陌
 *
 */
public class initlistener extends httpservlet implements servletcontextlistener {
 
  /**
 * 
 */
 private static final long serialversionuid = 1l;
 public static map<string, object> contextmap=new hashmap<string,object>();
 
  private logger logger = logger.getlogger(initlistenermobileresourcetree.class);
  public void init() throws servletexception{
 
//  logger.info("====初始化方法运行初完毕====");
  
  }
  @override
  public void contextdestroyed(servletcontextevent arg0) {
 
    logger.info("this is last destroyeed ");  
  }
  @override
  public void contextinitialized(servletcontextevent sce) {//获取要加载的数据方法
   try {
 /*
  *如果在获取数据时用到其他项目包中的接口,可以用如下方法
   * webapplicationcontext wac = contextloader.getcurrentwebapplicationcontext();
  * resourceservice resourceservice = (resourceservice) wac.getbean("resourceservice");// 跑批接口的实现类
  * 在springmvc.xml 中加入
  * <bean id="resourceservice" class="com.test.resourceservice" />
   */ 
     string jsonstr = 获取加载出来的数据(类型视情况而定)
  
  //将数据放到定义好的contextmap中
     contextmap.put("jsonstr", jsonstr);     
     
 } catch (exception e) {
  e.printstacktrace();
 }
   logger.info(contextmap); 
  }
}

2.配置web.xml

<listener>
 <listener-class>app.util.initlistener</listener-class>
</listener>

3.获取内存中的数据

initlistener.contextmap.get("jsonstr");

补充知识:java 字节流——将硬盘中的文件读到内存中,将内存中的数据写入硬盘中

我就废话不多说了,大家还是直接看代码吧~

package com.oracle.core;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.outputstream;

public class bytestream_study
{
 public static void main(string[] args) throws ioexception
 {
    // 输入流 
 //从硬盘到内存,文件必须存在
 inputstream in=new fileinputstream("d:\\hello.txt");
 //1.分配一块内存空间 临时的空间 存放我文件的数据
 byte[] b=new byte[in.available()];
 //2.将数据读入到内存空间
 in.read(b);
 //3.将数据转换为字符串
   //如果编码是utf-8 可以省略
 string s=new string(b,"gbk");
 system.out.println(s);
 in.close();
 
    //  输出流
 //从内存到硬盘
 //文件不存在 输出流会自动创建这样一个文件
 outputstream out=new fileoutputstream("d:\\haha.txt");
 string s1="再见";
 //输入还是输出流 操作的都是内存空间 字节数组
 out.write(s1.getbytes());
 out.close();
 }
}

以上这篇java 将数据加载到内存中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。