您好,登錄后才能下訂單哦!
java 實現將數據加載到內存中的操作?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
將數據加載到內存中
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 實現將數據加載到內存中的操作問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。