服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|

服务器之家 - 编程语言 - JAVA教程 - java 将数据加载到内存中的操作

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

2020-09-26 00:48浅沫之雨 JAVA教程

这篇文章主要介绍了java 将数据加载到内存中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

数据加载内存

1、建立InitListener.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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

?
1
2
3
<listener>
 <listener-class>app.util.InitListener</listener-class>
</listener>

3.获取内存中的数据

InitListener.contextMap.get("JsonStr");

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 将数据加载到内存中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/nicolewjt/article/details/88293237

延伸 · 阅读

精彩推荐