当前位置: 首页 > news >正文

创建网站超链接动感地带套餐

创建网站超链接,动感地带套餐,南京seo网站管理,黄埔营销型网站建设市面上读取 ini 的包都是 读取整个文件到内存中,再获取和修改值, 最后自己再调用保存文件, 这种方式在读取大文件的时候 非常的不友好. windows api 中有现成的高效方法 安装 jna-platform (里面封装了各个系统的 api ,直接用就行. 不用再手动写固定的函数定义) jna-platfor…市面上读取 ini 的包都是 读取整个文件到内存中,再获取和修改值, 最后自己再调用保存文件, 这种方式在读取大文件的时候 非常的不友好. windows api 中有现成的高效方法 安装 jna-platform (里面封装了各个系统的 api ,直接用就行. 不用再手动写固定的函数定义) jna-platform 是官方基于jna 封装好的 系统 API,jna 是调用自己写的 DLL pom.xml dependencygroupIdnet.java.dev.jna/groupIdartifactIdjna-platform/artifactIdversion5.14.0/version /dependencyIniUtil.java package org.example.myapp.utils;import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.platform.win32.Kernel32; import com.sun.jna.platform.win32.Win32Exception; import com.sun.jna.platform.win32.WinDef; import com.sun.jna.win32.W32APIOptions;import java.util.ArrayList; import java.util.Dictionary; import java.util.Hashtable;public class IniUtil {public static String getPrivateProfileString(final String lpAppName,final String lpKeyName, final String lpDefault,final String lpFileName) {final char buffer[] new char[1024];Kernel32.INSTANCE.GetPrivateProfileString(lpAppName, lpKeyName,lpDefault, buffer, new WinDef.DWORD(buffer.length), lpFileName);return Native.toString(buffer);}public static void writePrivateProfileString(final String appName, final String keyName, final String string, final String fileName) {if (!Kernel32.INSTANCE.WritePrivateProfileString(appName, keyName, string, fileName))throw new Win32Exception(Kernel32.INSTANCE.GetLastError());}public static int getPrivateProfileInt(final String appName,final String keyName, final int defaultValue, final String fileName) {return Kernel32.INSTANCE.GetPrivateProfileInt(appName, keyName,defaultValue, fileName);}public static String[] getPrivateProfileSection(final String appName, final String fileName) {final char buffer[] new char[32768];// Maximum INI file size according to MSDN (http://support.microsoft.com/kb/78346)if (Kernel32.INSTANCE.GetPrivateProfileSection(appName, buffer, new WinDef.DWORD(buffer.length), fileName).intValue() 0) {throw new Win32Exception(Kernel32.INSTANCE.GetLastError());}return new String(buffer).split(\0);}public static String[] getPrivateProfileSectionNames(final String fileName) {final char buffer[] new char[65536]; // Maximum INI file size according to MSDN (http://support.microsoft.com/kb/78346)if (Kernel32.INSTANCE.GetPrivateProfileSectionNames(buffer, new WinDef.DWORD(buffer.length), fileName).intValue() 0) {throw new Win32Exception(Kernel32.INSTANCE.GetLastError());}return new String(buffer).split(\0);}public static void writePrivateProfileSection(final String appName, final String[] strings, final String fileName) {final StringBuilder buffer new StringBuilder();for (final String string : strings)buffer.append(string).append(\0);buffer.append(\0);if (!Kernel32.INSTANCE.WritePrivateProfileSection(appName, buffer.toString(), fileName)) {throw new Win32Exception(Kernel32.INSTANCE.GetLastError());}}public interface MyKernel32 extends Library {/*** 用来写入 中文 (** desc* jna-platform 5.14 源码中* MapString, Object DEFAULT_OPTIONS Boolean.getBoolean(w32.ascii) ? ASCII_OPTIONS : UNICODE_OPTIONS;* 在我的电脑上是 UNICODE_OPTIONS, 会导致 中文乱码 (编码是 gbk, 文件编码是 UTF-8))* 所以手动写这个函数定义 指定为 ASCII_OPTIONS (文件编码是 UTF-8, 中文正常显示 )*/MyKernel32 INSTANCE Native.load(kernel32, MyKernel32.class, W32APIOptions.ASCII_OPTIONS);boolean WritePrivateProfileString(String lpAppName, String lpKeyName,String lpString, String lpFileName);}String _filePath;public IniUtil(String filePath) {_filePath filePath;}public String readString(String sectionName, String keyName) {return getPrivateProfileString(sectionName, keyName, , _filePath);}public String readString(String sectionName, String keyName, String defaultValue) {return getPrivateProfileString(sectionName, keyName, defaultValue, _filePath);}public Integer readInt(String sectionName, String keyName) {return getPrivateProfileInt(sectionName, keyName, 0, _filePath);}public Integer readInt(String sectionName, String keyName, Integer defaultValue) {return getPrivateProfileInt(sectionName, keyName, defaultValue, _filePath);}/*** 获取 sectionName 下所有的 keyName** param sectionName* return*/public ArrayListString readKeysBySectionName(String sectionName) {ArrayListString result new ArrayList();final char buffer[] new char[65536];WinDef.DWORD res Kernel32.INSTANCE.GetPrivateProfileString(sectionName, null,null, buffer, new WinDef.DWORD(buffer.length), _filePath);int len res.intValue();int j 0;for (int i 0; i len; i) {if (buffer[i] 0) {String str new String(buffer, j, i - j);result.add(str);j i 1;}}return result;}public ArrayListString readAllSectionNames() {ArrayListString result new ArrayList();final char buffer[] new char[65536];WinDef.DWORD res Kernel32.INSTANCE.GetPrivateProfileString(null, null,null, buffer, new WinDef.DWORD(buffer.length), _filePath);int len res.intValue();int j 0;for (int i 0; i len; i) {if (buffer[i] 0) {String str new String(buffer, j, i - j);result.add(str);j i 1;}}return result;}/*** 读取所有数据 ( !! 大文件慎用,会很慢, 小文件随意用)** return*/public DictionaryString, DictionaryString, String readAllData() {DictionaryString, DictionaryString, String resultDictionary new Hashtable();ArrayListString allSectionList readAllSectionNames();for (String item : allSectionList) {ArrayListString allKeyList readKeysBySectionName(item);DictionaryString, String dataDictionary new Hashtable();for (String child : allKeyList) {String value readString(item, child);dataDictionary.put(child, value);}resultDictionary.put(item, dataDictionary);}return resultDictionary;}/*** 新增 / 修改 (如果存在则修改,否则添加,没有文件会创建)** param sectionName* param keyName* param value*/public void writeString(String sectionName, String keyName, String value) {// NOTE: jna-platform 封装的方法写入中文, 会乱码, 所以调用自己写的MyKernel32.INSTANCE.WritePrivateProfileString(sectionName, keyName, value, _filePath);}/*** 删除指定的 Section** param sectionName*/public void deleteSection(String sectionName) {writePrivateProfileString(sectionName, null, null, _filePath);}/*** 删除所有内容*/public void deleteAllSection() {writePrivateProfileString(null, null, null, _filePath);}/*** 删除一个 key** param sectionName* param keyName*/public void deleteKey(String sectionName, String keyName) {writePrivateProfileString(sectionName, keyName, null, _filePath);} } 测试一下 注入到 spring boot 中 package org.example.myapp.config;import org.example.myapp.utils.IniUtil; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class IniConf {Beanpublic IniUtil iniUtil() {String fileName D:\\Desktop\\demo.ini;return new IniUtil(fileName);} }调用 Autowired public IniUtil ini;GetMapping(/test) public Integer test() {// 测试自己封装的方法String s ini.readString(colors, background); System.out.println(s);ini.writeString(General,test3,测试数据);//ini.deleteKey(General,test3);// 测试静态方法Integer ss IniUtil.getPrivateProfileInt(colors,name,0,D:\\Desktop\\demo.ini);return ss; }
http://www.pierceye.com/news/675014/

相关文章:

  • 怎么区分营销型网站文章类型的网站模版
  • 网站充值接口怎么做国家企业官网查询系统
  • 厦门网站建设工程网站备案幕布大小
  • 做家教去什么网站滕州做网站哪家好
  • 深圳市涂能装饰设计公司网站网站建设活动策划方案
  • 建设三合一网站找设计公司上哪个网站
  • 代理ip做网站流量饭店网站模板
  • 保险网站查询软件开发工程师和程序员的区别
  • 江都区城乡建设局网站马局下载app下载安卓免费
  • 网站做后台kuler 网站
  • 北京建网站公司飞沐扬中信息网
  • 商河网站建设公司南县网站建设推荐
  • 湛江企业网站建站模板网站开发 平台
  • c做的网站app开发制作专业吗
  • 杭州做网站公司做网站的文章
  • 那里有制作网站公司做网站需要了解的内容
  • 网站防护怎么做企业网站建设的ppt
  • 凡科网的网站建设好用吗wordpress在线朗读
  • 闽侯县建设局网站营销网站seo推广费用
  • 长乐区住房和城乡建设局网站测网站打开的速度的网址
  • 手机网站产品展示模板wordpress评论改成微博
  • 后盾网原创实战网站建设教程做网站和编程序
  • 东莞整站优化推广公司找火速如何做网站连接
  • 做ppt的模板的网站想学服装设计怎么入门
  • 短视频网站如何做推广网站申请域名
  • 餐饮行业网站建设风格建网站费用
  • 北京网站建设与维护石家庄做淘宝网站
  • seo网站关键词优化费用linux wordpress 伪静态
  • 朋友做的网站图片不显示不出来的网站空间哪家公司的好
  • 外贸网站建设公司价格最全做暖暖网站