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("====初始化方法運(yùn)行初完畢===="); } @Override public void contextDestroyed(ServletContextEvent arg0) { logger.info("this is last destroyeed "); } @Override public void contextInitialized(ServletContextEvent sce) {//獲取要加載的數(shù)據(jù)方法 try { /* *如果在獲取數(shù)據(jù)時(shí)用到其他項(xiàng)目包中的接口,可以用如下方法 * WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); * ResourceService resourceService = (ResourceService) wac.getBean("resourceService");// 跑批接口的實(shí)現(xiàn)類(lèi) * 在springMVC.XML 中加入 * <bean id="resourceService" class="com.test.ResourceService" /> */ String JsonStr = 獲取加載出來(lái)的數(shù)據(jù)(類(lèi)型視情況而定) //將數(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");
補(bǔ)充知識(shí):java 字節(jié)流——將硬盤(pán)中的文件讀到內(nèi)存中,將內(nèi)存中的數(shù)據(jù)寫(xiě)入硬盤(pán)中
我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧~
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 { // 輸入流 //從硬盤(pán)到內(nèi)存,文件必須存在 InputStream in=new FileInputStream("D:\\hello.txt"); //1.分配一塊內(nèi)存空間 臨時(shí)的空間 存放我文件的數(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)存到硬盤(pán) //文件不存在 輸出流會(huì)自動(dòng)創(chuàng)建這樣一個(gè)文件 OutputStream out=new FileOutputStream("D:\\haha.txt"); String s1="再見(jiàn)"; //輸入還是輸出流 操作的都是內(nèi)存空間 字節(jié)數(shù)組 out.write(s1.getBytes()); out.close(); } }
以上這篇java 將數(shù)據(jù)加載到內(nèi)存中的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 排查Java應(yīng)用內(nèi)存泄漏問(wèn)題的步驟
- java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的
- JAVA內(nèi)存模型和Happens-Before規(guī)則知識(shí)點(diǎn)講解
- Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存
- idea插件篇之java內(nèi)存分析工具(JProfiler)的使用
- Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法
- Java內(nèi)存模型知識(shí)詳解
- Java內(nèi)存釋放實(shí)現(xiàn)代碼案例
相關(guān)文章
Java并發(fā)編程之CountDownLatch原理詳解
這篇文章主要介紹了Java并發(fā)編程之CountDownLatch原理詳解,CountDownLatch類(lèi)中使用了一個(gè)繼承自AQS的共享鎖Sync對(duì)象,構(gòu)造CountDownLatch對(duì)象時(shí)會(huì)將傳入的線(xiàn)程數(shù)值設(shè)為AQS的state值,需要的朋友可以參考下2023-12-12SpringBoot+Thymeleaf靜態(tài)資源的映射規(guī)則說(shuō)明
這篇文章主要介紹了SpringBoot+Thymeleaf靜態(tài)資源的映射規(guī)則說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Spring Boot接收單個(gè)String入?yún)⒌慕鉀Q方法
這篇文章主要給大家介紹了關(guān)于Spring Boot接收單個(gè)String入?yún)⒌慕鉀Q方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11Java Scoket實(shí)現(xiàn)雙向通信代碼詳解
這篇文章主要介紹了Java Scoket實(shí)現(xiàn)雙向通信代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06簡(jiǎn)單講解Java設(shè)計(jì)模式編程中的單一職責(zé)原則
這篇文章主要介紹了Java設(shè)計(jì)模式編程中的單一職責(zé)原則,這在團(tuán)隊(duì)開(kāi)發(fā)編寫(xiě)接口時(shí)經(jīng)常使用這樣的約定,需要的朋友可以參考下2016-02-02解決Maven項(xiàng)目中 Invalid bound statement 無(wú)效的綁定問(wèn)題
這篇文章主要介紹了解決Maven項(xiàng)目中 Invalid bound statement 無(wú)效的綁定問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06