System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及計(jì)算機(jī),特別是涉及一種文件處理方法、裝置及相關(guān)設(shè)備。
技術(shù)介紹
1、目前,隨著計(jì)算機(jī)技術(shù)的發(fā)展,越來(lái)越多的計(jì)算機(jī)軟件不斷涌現(xiàn)。在對(duì)計(jì)算機(jī)軟件進(jìn)行開(kāi)發(fā)時(shí),開(kāi)發(fā)人員通常需要獲取開(kāi)發(fā)相關(guān)的信息,例如,開(kāi)發(fā)人員需要梳理計(jì)算機(jī)軟件中不同服務(wù)之間的依賴關(guān)系以及調(diào)用的鏈路等信息,以便對(duì)計(jì)算機(jī)軟件進(jìn)行優(yōu)化、重構(gòu)或新功能的開(kāi)發(fā)。
2、實(shí)際場(chǎng)景中,由于編寫源代碼的風(fēng)格的多樣性,開(kāi)發(fā)人員難以通過(guò)直接閱讀源代碼的方式獲取開(kāi)發(fā)相關(guān)的信息,因此,開(kāi)發(fā)人員可以使用開(kāi)發(fā)過(guò)程中記錄的軟件設(shè)計(jì)文檔以獲取所需信息。然而,在計(jì)算機(jī)軟件周期較長(zhǎng)的開(kāi)發(fā)進(jìn)程中,開(kāi)發(fā)人員的流動(dòng)、軟件設(shè)計(jì)文檔未及時(shí)更新等問(wèn)題均會(huì)造成軟件設(shè)計(jì)文檔與現(xiàn)有的計(jì)算機(jī)軟件不匹配的情況,嚴(yán)重影響計(jì)算機(jī)軟件的優(yōu)化、重構(gòu)以及新功能的開(kāi)發(fā)。
3、在java開(kāi)發(fā)環(huán)境中,開(kāi)發(fā)人員無(wú)需軟件設(shè)計(jì)文檔,也能借助集成開(kāi)發(fā)環(huán)境(integrated?development?environment,ide)中的開(kāi)發(fā)工具快速梳理出開(kāi)發(fā)相關(guān)的信息,例如,開(kāi)發(fā)人員可以使用ide中的開(kāi)發(fā)工具梳理出計(jì)算機(jī)軟件中類、方法、屬性等元素被調(diào)用或者引用的情況。然而,使用ide中的開(kāi)發(fā)工具獲取開(kāi)發(fā)相關(guān)的信息往往會(huì)存在風(fēng)險(xiǎn),效果不佳。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供了一種文件處理方法,以避免計(jì)算機(jī)軟件相關(guān)開(kāi)發(fā)文件泄露的風(fēng)險(xiǎn),并提高開(kāi)發(fā)人員獲取java信息的效率。此外,本申請(qǐng)實(shí)施例還提供對(duì)應(yīng)的文件處理裝置、計(jì)算設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
3、在一種可能的實(shí)施方式中,所述多個(gè)java文件為多個(gè)java字節(jié)碼文件,所述解析所述多個(gè)java文件,包括:根據(jù)字節(jié)碼工程庫(kù)bcel解析所述多個(gè)java字節(jié)碼文件。
4、在一種可能的實(shí)施方式中,所述多個(gè)java文件為多個(gè)java源代碼文件,所述解析所述多個(gè)java文件,包括:根據(jù)java抽象語(yǔ)法樹(shù)ast解析器解析所述多個(gè)java源代碼文件。
5、在一種可能的實(shí)施方式中,所述獲取待處理的多個(gè)java文件,包括:獲取待處理的至少一個(gè)java源文件,所述至少一個(gè)java源文件中的每個(gè)java源文件為java項(xiàng)目文件或java歸檔jar文件;從所述至少一個(gè)java源文件中讀取得到所述多個(gè)java文件。
6、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第一方法的流量入口,所述第一方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中調(diào)用所述第一方法的多個(gè)方法,并且所述多個(gè)方法不被所述數(shù)據(jù)庫(kù)中的任一方法調(diào)用,得到所述多個(gè)方法的元數(shù)據(jù)。
7、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第二方法的影響方法,所述第二方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中所述第二方法調(diào)用的多個(gè)方法,得到所述多個(gè)方法的元數(shù)據(jù)。
8、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第三方法的血緣視圖,所述第三方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中調(diào)用所述第三方法的多個(gè)方法,得到所述血緣視圖,所述血緣視圖包括所述第三方法和所述多個(gè)方法,所述第三方法及所述多個(gè)方法中的各方法之間用有向邊相連,且所述有向邊的方向指向被調(diào)用的方法。
9、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第四方法的影響視圖,所述第四方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中所述第四方法調(diào)用的多個(gè)方法,得到所述影響視圖,所述影響視圖包括所述第四方法和所述多個(gè)方法,所述第四方法及所述多個(gè)方法中的各方法之間用有向邊相連,且所述有向邊的方向指向被調(diào)用的方法,所述查詢結(jié)果為所述影響視圖。
10、第二方面,本申請(qǐng)實(shí)施例提供了一種文件處理裝置,包括:獲取模塊,所述獲取模塊用于獲取待處理的多個(gè)java文件,所述多個(gè)java文件包括多個(gè)java字節(jié)碼文件或多個(gè)java源代碼文件;所述獲取模塊還用于獲取用戶的查詢請(qǐng)求;解析模塊,所述解析模塊用于解析所述多個(gè)java文件,得到j(luò)ava信息,所述java信息包括所述多個(gè)java文件中多個(gè)元素中各元素的元數(shù)據(jù)和所述多個(gè)元素中各元素之間的關(guān)系;存儲(chǔ)模塊,所述存儲(chǔ)模塊用于將所述java信息存儲(chǔ)于數(shù)據(jù)庫(kù);查詢模塊,所述查詢模塊用于根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果;輸出模塊,所述輸出模塊用于輸出所述查詢結(jié)果。
11、在一種可能的實(shí)施方式中,所述多個(gè)java文件為多個(gè)java字節(jié)碼文件,所述解析模塊,具體用于:根據(jù)字節(jié)碼工程庫(kù)bcel解析所述多個(gè)java字節(jié)碼文件。
12、在一種可能的實(shí)施方式中,所述多個(gè)java文件為多個(gè)java源代碼文件,所述解析模塊,具體用于:根據(jù)java抽象語(yǔ)法樹(shù)ast解析器解析所述多個(gè)java源代碼文件。
13、在一種可能的實(shí)施方式中,所述獲取模塊,具體用于:獲取待處理的至少一個(gè)java源文件,所述至少一個(gè)java源文件中的每個(gè)java源文件為java項(xiàng)目文件或java歸檔jar文件;從所述至少一個(gè)java源文件中讀取得到所述多個(gè)java文件。
14、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第一方法的流量入口,所述第一方法為所述數(shù)據(jù)庫(kù)中的元素,所述查詢模塊,具體用于:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中調(diào)用所述第一方法的多個(gè)方法,并且所述多個(gè)方法不被所述數(shù)據(jù)庫(kù)中的任一方法調(diào)用,得到所述多個(gè)方法的元數(shù)據(jù)。
15、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第二方法的影響方法,所述第二方法為所述數(shù)據(jù)庫(kù)中的元素,所述查詢模塊,具體用于:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中所述第二方法調(diào)用的多個(gè)方法,得到所述多個(gè)方法的元數(shù)據(jù)。
16、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為第三方法的血緣視圖,所述第三方法為所述數(shù)據(jù)庫(kù)中的元素,所述查詢模塊,具體用于:根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù)中調(diào)用所述第三方法的多個(gè)方法,得到所述血緣視圖,所述血緣視圖包括所述第三方法和所述多個(gè)方法,所述第三方法及所述多個(gè)方法中的各方法之間用有向邊相連,且所述有向邊的方向指向被調(diào)用的方法。
17、在一種可能的實(shí)施方式中,所述查詢請(qǐng)求為本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種文件處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)Java文件為多個(gè)Java字節(jié)碼文件,所述解析所述多個(gè)Java文件,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)Java文件為多個(gè)Java源代碼文件,所述解析所述多個(gè)Java文件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取待處理的多個(gè)Java文件,包括:
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查詢請(qǐng)求為第一方法的流量入口,所述第一方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:
6.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查詢請(qǐng)求為第二方法的影響方法,所述第二方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:
7.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查詢請(qǐng)求為第三方法的血緣視圖,所述第三方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求
8.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查詢請(qǐng)求為第四方法的影響視圖,所述第四方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:
9.一種文件處理裝置,其特征在于,所述裝置包括:
10.一種計(jì)算設(shè)備,其特征在于,所述計(jì)算設(shè)備包括處理器以及存儲(chǔ)器:
...【技術(shù)特征摘要】
1.一種文件處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)java文件為多個(gè)java字節(jié)碼文件,所述解析所述多個(gè)java文件,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)java文件為多個(gè)java源代碼文件,所述解析所述多個(gè)java文件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取待處理的多個(gè)java文件,包括:
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查詢請(qǐng)求為第一方法的流量入口,所述第一方法為所述數(shù)據(jù)庫(kù)中的元素,所述根據(jù)所述查詢請(qǐng)求,查詢所述數(shù)據(jù)庫(kù),得到所述查詢請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,包括:
6.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述查...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:武國(guó)君,
申請(qǐng)(專利權(quán))人:北京商銀微芯科技有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。