java 將數(shù)據(jù)加載到內(nèi)存中的操作
將數(shù)據(jù)加載到內(nèi)存中
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;
/**
* 加載數(shù)據(jù)到內(nèi)存案例
* @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) {//獲取要加載的數(shù)據(jù)方法
try {
/*
*如果在獲取數(shù)據(jù)時用到其他項目包中的接口,可以用如下方法
* WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
* ResourceService resourceService = (ResourceService) wac.getBean("resourceService");// 跑批接口的實現(xiàn)類
* 在springMVC.XML 中加入
* <bean id="resourceService" class="com.test.ResourceService" />
*/
String JsonStr = 獲取加載出來的數(shù)據(jù)(類型視情況而定)
//將數(shù)據(jù)放到定義好的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.獲取內(nèi)存中的數(shù)據(jù)
InitListener.contextMap.get("JsonStr");
補充知識:java 字節(jié)流——將硬盤中的文件讀到內(nèi)存中,將內(nèi)存中的數(shù)據(jù)寫入硬盤中
我就廢話不多說了,大家還是直接看代碼吧~
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
{
// 輸入流
//從硬盤到內(nèi)存,文件必須存在
InputStream in=new FileInputStream("D:\\hello.txt");
//1.分配一塊內(nèi)存空間 臨時的空間 存放我文件的數(shù)據(jù)
byte[] b=new byte[in.available()];
//2.將數(shù)據(jù)讀入到內(nèi)存空間
in.read(b);
//3.將數(shù)據(jù)轉(zhuǎn)換為字符串
//如果編碼是UTF-8 可以省略
String s=new String(b,"GBK");
System.out.println(s);
in.close();
// 輸出流
//從內(nèi)存到硬盤
//文件不存在 輸出流會自動創(chuàng)建這樣一個文件
OutputStream out=new FileOutputStream("D:\\haha.txt");
String s1="再見";
//輸入還是輸出流 操作的都是內(nèi)存空間 字節(jié)數(shù)組
out.write(s1.getBytes());
out.close();
}
}
以上這篇java 將數(shù)據(jù)加載到內(nèi)存中的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis結(jié)果集映射與生命周期詳細(xì)介紹
結(jié)果集映射指的是將數(shù)據(jù)表中的字段與實體類中的屬性關(guān)聯(lián)起來,這樣 MyBatis 就可以根據(jù)查詢到的數(shù)據(jù)來填充實體對象的屬性,幫助我們完成賦值操作2022-10-10
Java面向?qū)ο蠡A(chǔ)知識之委托和lambda
這篇文章主要介紹了Java面向?qū)ο蟮闹泻?lambda,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-11-11
詳解使用Spring MVC統(tǒng)一異常處理實戰(zhàn)
本篇文章主要介紹了詳解使用Spring MVC統(tǒng)一異常處理實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
springboot服務(wù)正常啟動之后,訪問服務(wù)url無響應(yīng)問題及解決
這篇文章主要介紹了springboot服務(wù)正常啟動之后,訪問服務(wù)url無響應(yīng)問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07

