readline

【Json】1.Newtonsoft—Json.NET常用方法简述

萝らか妹 提交于 2020-04-22 03:50:04
Json.NET常用方法汇总(可解决日常百分之90的需求) 0.Json.NET基础用法   首先去 官网 下载最新的Newtonsoft.Json.dll(也可以使用VS自带的NuGet搜索Json.NET下载(下载下图第二个))并引用至项目。    (1)序列化实体类(将实体类对象序列化为Json字符串) using System; using Newtonsoft.Json; namespace Json_NET_Test { /// <summary> /// 定义一个实体类 /// </summary> public class Student { public string Name; public int Age; public string Class; } class Program { static void Main( string [] args) { // 创建实体类对象 Student stu = new Student { Name = " 老王 " , Age = 99 , Class = " 三班 " }; // 开始序列化 string jsonStr = JsonConvert.SerializeObject(stu, Formatting.Indented); Console.WriteLine(jsonStr); } } }   结果:  

Java 通过wkhtmltopdf在线生成PDF

佐手、 提交于 2020-04-22 02:28:05
1. 下载安装wkhtmltopdf; 百度网盘: https://pan.baidu.com/s/1Lb28f93nY0N86iW0MhFA9g 提取码:s2fa 2. 创建一个工具类WKHtmlToPdfUtilUtil.java,写入以下代码: package com.zghky.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.Date; public class WKHtmlToPdfUtil { private static class ClearBufferThread implements Runnable { private InputStream in; public ClearBufferThread(InputStream inputStream) { this.in = inputStream; } @Override public void run() {

Python3 与 C# 基础语法对比(就当Python和C#基础的普及吧)

时间秒杀一切 提交于 2020-04-21 05:22:05
文章汇总: https://www.cnblogs.com/dotnetcrazy/p/9160514.html 多图旧排版: https://www.cnblogs.com/dunitian/p/9103673.html VSCode设置python3的开发环境(linux下默认是python2) https://www.cnblogs.com/dotnetcrazy/p/9095793.html 欢迎提出更简单的语法~(文章中案例有两个福利哦,一个是养生,一个是人工智能[ 密码:fqif]) 先说下感觉, python 的编程有点 JavaScript 的感觉(比如:'和“有时候不区别),又感觉像外国版的易语言,整个过程像读书一样,比如一个元素不在列表之中==> for item not in lists 。使用它做个大点的项目一定要先规定好编程风格,不然能让人崩溃的。先不深究,后面会继续深究。。。(Python2我就不讲了,官方推荐使用 Python3 ) 1.命名规则 ¶ Python官方是推荐使用 _ 来间隔单词,但一般开发人员都是以各自主语言的命名来定义的,这个就各人爱好了,不过团队一定要统一。 命名规则 :总的原则就是 见名知意 ,一般都是 驼峰命名法 ,纯Python的话推荐用 _ 连接单词 扩充: Python 的 关键词 可以自己打印一下: In [1]:

Python基础_文件读写

梦想的初衷 提交于 2020-04-20 13:39:37
一、I/O操作概述 I/O概述: I/O在计算机中时指Input/Output,也就是Stream的输入与输出。我们通常说的输入与输出其实在操作系统中都是相对于内存而言的,InputStream(输入流)是指数据从外部(网络、键盘、I/O设备)流进内存,OutputStream正好与之相反,数据从内存流出到外部。程序运行时,数据都是在哎内存中驻留,由CPU这个超级快的计算核心来执行,涉及到数据交换的地方就需要IO接口。 IO接口的提供以及高级编程语言中的IO操作的实现: 操作系统十个通用的软件程序,其通用目的如下: 硬件驱动、进程管理、内存管理、网络管理、安全管理、I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理和操作步骤 1.文件读写实现原理: 由于操作I/O的能力是由操作系统提供的,且操作系统不允许普通程序直接操作磁盘,所以读写文件时需要操作系统打开一个对象,这个对象通常被称之为文件描述符--file descriptor,简称fd,这个就是我们在程序中要操作的文件对象。 通常高级编程语言会提供一个内置的函数,通过接收‘文件路径’、‘文件打开模式’等参数来打开一个文件对象,并返回该文件对象的文件描述符

IO流学习总结

时光总嘲笑我的痴心妄想 提交于 2020-04-19 22:01:30
IO: 概述: IO流用来处理设备之间的数据传输,如上传文件和下载文件 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 按照数据流向: 输入流 读入数据 从操作系统上读入文件到内存中 输出流 写出数据 就是将文件从编译器中编写到操作系统上 按照数据类型: 字节流 由于我们的文件存储的基本单元都是字节,所以这个很早出现了 字符流 为了方便表示某些数据,则出现字符流 使用方式: 如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流,否则用字节流。 如果什么都不知道,就用字节流。 IO流: 字节流: 字节输入流: InputStream FileInputStream 字节缓冲输入流: BufferedInputStream 成员方法: int read() 一次读取一个字节 int read(byte [] bytes) 一次读取一个字节数组 字节输出流: OutputStream FileOutStream 字节缓冲输出流: BufferedOutputStream 成员方法: void write() 一次写入一个字节 void write(byte [] bytes , int off , int len) 一次写入一个字节数组,从off开始,长度为len 字符流(转换流): 字符流 = 字节流 + 编码集 字符输入流:

手动搭建I/O网络通信框架4:AIO编程模型,聊天室终极改造

点点圈 提交于 2020-04-18 14:44:44
第一章: 手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊 第二章: 手动搭建I/O网络通信框架2:BIO编程模型实现群聊 第三章: 手动搭建I/O网络通信框架3:NIO编程模型,升级改造聊天室   上一章讲到的NIO编程模型比较主流,非常著名的Netty就是基于NIO编程模型的。这一章说的是AIO编程模型,是 异步非阻塞 的。虽然同样实现的是聊天室功能,但是实现逻辑上稍微要比NIO和BIO复杂一点。不过理好整体脉络,会好理解一些。首先还是讲讲概念:   BIO和NIO的区别是阻塞和非阻塞,而AIO代表的是异步IO。在此之前只提到了阻塞和非阻塞,没有提到异步还是同步。可以用我在知乎上看到的一句话表示:【在处理 IO 的时候,阻塞和非阻塞都是同步 IO,只有使用了特殊的 API 才是异步 IO】。这些“特殊的API”下面会讲到。在说AIO之前,先总结一下阻塞非阻塞、异步同步的概念。    阻塞和非阻塞,描述的是结果的请求 。 阻塞 :在得到结果之前就一直呆在那,啥也不干,此时线程挂起,就如其名,线程被阻塞了。 非阻塞 :如果没得到结果就返回,等一会再去请求,直到得到结果为止。 异步和同步,描述的是结果的发出 ,当调用方的请求进来。 同步 :在没获取到结果前就不返回给调用方,如果调用方是阻塞的,那么调用方就会一直等着。如果调用方是非阻塞的

使用C#的计时器加观察者模式完成报警推送需求

人走茶凉 提交于 2020-04-18 12:01:57
前言 这两天面试了一个物联网公司高级研发,面试题是下面这样子 公司领导,部门主管,小组组长,组成员4级,假如有个 疫情预警,先通知组人员(对个人,主要有一个处理就算处理了) 如果3分钟没处理,就往组长发短信,如果组长3分钟没处理就往上级推送。一级一级的。 要求单程序并发至少支持1000tps预警事件 说实话上面需求在我做的过往项目里有过类似需求,我也只是依稀记得自己是怎么做的。类似于使用第三方任务调度框架完成上面的3分钟超时处理,然后至于分级发送则更简单了,再不济就是使用if、else这样的最原始验证即可。但是这样的题目丢到面试题上我是一下就不知所措了。自然最终的结果也不尽人意(我最终提交的代码就是采用一个事件总线实现报警的推送,但是并未对其进行超时分级发送) 这个自然是错误的,我其实当时也想过使用Timer,但是内心对Timer就是感觉用性能做代价去换取最终的结果。 解析需求 过了几天还是觉得要手纯撸代码将上面功能撸出来,不然如何成长呢! 拆分下需求可以得到的消息是有一个事件。这个事件就是报警事件,通过报警事件需要将消息推送给不同职位的工作人员,而且必须遵循岗位从下至上,但凡人员收到报警消息则表示报警通知已完成,其次就是有一个三分钟需要处理。 通过上面的需求分析可以知道我们必须要定义一个枚举,记录职称高低。 /// <summary> /// 工作级别 /// </summary

使用C#的计时器加观察者模式完成报警推送需求

孤街浪徒 提交于 2020-04-18 11:53:44
前言 这两天面试了一个物联网公司高级研发,面试题是下面这样子 公司领导,部门主管,小组组长,组成员4级,假如有个 疫情预警,先通知组人员(对个人,主要有一个处理就算处理了) 如果3分钟没处理,就往组长发短信,如果组长3分钟没处理就往上级推送。一级一级的。 要求单程序并发至少支持1000tps预警事件 说实话上面需求在我做的过往项目里有过类似需求,我也只是依稀记得自己是怎么做的。类似于使用第三方任务调度框架完成上面的3分钟超时处理,然后至于分级发送则更简单了,再不济就是使用if、else这样的最原始验证即可。但是这样的题目丢到面试题上我是一下就不知所措了。自然最终的结果也不尽人意(我最终提交的代码就是采用一个事件总线实现报警的推送,但是并未对其进行超时分级发送) 这个自然是错误的,我其实当时也想过使用Timer,但是内心对Timer就是感觉用性能做代价去换取最终的结果。 解析需求 过了几天还是觉得要手纯撸代码将上面功能撸出来,不然如何成长呢! 拆分下需求可以得到的消息是有一个事件。这个事件就是报警事件,通过报警事件需要将消息推送给不同职位的工作人员,而且必须遵循岗位从下至上,但凡人员收到报警消息则表示报警通知已完成,其次就是有一个三分钟需要处理。 通过上面的需求分析可以知道我们必须要定义一个枚举,记录职称高低。 /// <summary> /// 工作级别 /// </summary

RabbitMQ与.net core(四) 消息的优先级 与 死信队列

痴心易碎 提交于 2020-04-18 00:06:08
1.消息的优先级 假如现在有个需求,我们需要让一些优先级最高的通知推送到客户端,我们可以使用redis的sortedset,也可以使用我们今天要说的rabbit的消息优先级属性 Producer代码 using RabbitMQ.Client; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace RabbitMQConsole { class Program { static void Main( string [] args) { ConnectionFactory factory = new ConnectionFactory(); factory.HostName = " 39.**.**.** " ; factory.Port = 5672 ; factory.VirtualHost = " / " ; factory.UserName = " root " ; factory.Password = " root " ; var exchange = " change4 " ; var route = " route2 " ; var queue9 = "

C# 如何实现完整的INI文件读写类

扶醉桌前 提交于 2020-04-17 17:24:38
作者 : 魔法软糖 日期 : 2020-02-27 引言 ************************************* .ini 文件是Initialization File的缩写,即配置文件 。 是 windows 的系统 配置文件 所采用的存储格式。 它具有方便易用的特点,和注册表的键值有着类似的功能, 各类应用程序也经常使用INI保存各种配置和选项。 在简单只需要读取的场合,调用WINDOWS API就行, 但在复杂的需要可视化编辑时,就需要建立自己的处理类了。 如何实现自己的INI类 首先我们需要了解 ◇ INI的格式 ◇ 典型INI文件 ;项目注释 [.ShellClassInfo] InfoTip=有图标的文件夹 ;图标资源 IconResource="C:\Windows\system32\SHELL32.dll",4 #文件夹视图 [ViewState] Mode= Vid= FolderType=General #尾部注释 一个典型INI文件由节、注释和节下面的项组成,而项为键=值的形式。 INI文件的注释符号有两种,规范为;分号,实际有些地方用#井号。 ◇ 保留注释 为了在修改INI文件时不丢失任何信息,所以需要保存INI文件中所有有效元素、包括注释甚至是无效行。 为了实现这个目的,将所有注释和无效行都归属于它之后的有效元素。