使用Anylogic訪問服務(wù)器及文件系統(tǒng)

在使用Anylogic時我們有時需要讓它訪問管理信息系統(tǒng)或者進行網(wǎng)絡(luò)通信,這是我們可以考慮使用服務(wù)器或文件系統(tǒng)的方式讓Anylogic對特定鏈接或者文件進行訪問,本文就來說明如何完成這一目標。

個人站點:https://whl1207.github.io/,記錄一些學(xué)習(xí)筆記,主要寫點基于anylogic的仿真和web開發(fā)方面的知識點。有興趣的同學(xué)可以探討一下!

在學(xué)習(xí)本文前需要對Anylogic和WEB開發(fā)有一定的了解。關(guān)于WEB開發(fā)可以參考《使用thinkphp建立一個簡單的站點》。

一、訪問特定鏈接

1、在Anylogic的智能體面板中拖入一個函數(shù)元素,將其命名為getHtml。

2、在getHtml元素的屬性面板中選擇“返回值”,并設(shè)置返回類型為String。

3、在參數(shù)中設(shè)置名稱為urlString,類型為String。

4、在函數(shù)體中輸入如下代碼:

    try {
        StringBuffer html = new StringBuffer(); 
        java.net.URL url = new java.net.URL(urlString); //根據(jù) String 表示形式創(chuàng)建 URL 對象。
        java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();// 返回一個 URLConnection 對象,它表示到 URL 所引用的遠程對象的連接。
        java.io.InputStreamReader isr = new java.io.InputStreamReader(conn.getInputStream());//返回從此打開的連接讀取的輸入流。
        java.io.BufferedReader br = new java.io.BufferedReader(isr);//創(chuàng)建一個使用默認大小輸入緩沖區(qū)的緩沖字符輸入流。
        
        String temp;
        while ((temp = br.readLine()) != null) { //按行讀取輸出流
            if(!temp.trim().equals("")){
            html.append(temp).append("\n"); //讀完每行后換行
            }
        }
        br.close(); //關(guān)閉
        isr.close(); //關(guān)閉
        return html.toString(); //返回此序列中數(shù)據(jù)的字符串表示形式。
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }

5、點擊Anylogic的空白處,在Main智能體的屬性中的啟動時中輸入以下代碼:

System.out.print(getHtml("https://www.baidu.com"));

這樣我們就能返回百度里的代碼,并將其在控制臺中輸出。如果將其與自建的服務(wù)器鏈接,服務(wù)器中創(chuàng)建相關(guān)接口就能夠完成與服務(wù)其的通信,將Anylogic對接到信息系統(tǒng)中。

二、訪問特定文件

1、在Anylogic的智能體面板中拖入一個函數(shù)元素,將其命名為getFile。

2、在getHtml元素的屬性面板中選擇“返回值”,并設(shè)置返回類型為String。

3、在參數(shù)中設(shè)置名稱為fileName,類型為String。

4、在函數(shù)體中輸入如下代碼:

    java.io.File file = new java.io.File(fileName);
    java.io.BufferedReader reader = null;
    java.lang.StringBuffer sbf = new java.lang.StringBuffer();
    try {
        reader = new java.io.BufferedReader(new java.io.FileReader(file));
        String tempStr;
        while ((tempStr = reader.readLine()) != null) {
            sbf.append(tempStr);
        }
        reader.close();
        return sbf.toString();
    } catch (java.io.IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (java.io.IOException e1) {
                e1.printStackTrace();
            }
        }
    }
    return sbf.toString();

5、在D盤新建一個文本文檔,命名為1.txt,并在其中輸入任何字符。

6、點擊Anylogic編輯器的空白處,在Main智能體的屬性中的啟動時中輸入以下代碼:

System.out.print(getFile("D:/1.txt"));

這樣我們就能返回D盤中1.txt中的文本,并將其在控制臺中輸出。如果將其與其他軟件鏈接,或使用scoket網(wǎng)絡(luò)通信實時修改文件就能將Anylogic對接到其他系統(tǒng)中。

個人主頁:https://whl1207.github.io/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容