readline

【C#】工具类-FTP操作封装类FTPHelper

时光怂恿深爱的人放手 提交于 2020-04-24 13:03:44
C# FTPHelper实现FTP服务器文件读写操作,支持SSL协议(FTP服务器为:Serv-U10.0)。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; namespace FTPTest { public class FTPHelper { #region 变量 /// <summary> /// FTP请求对象 /// </summary> FtpWebRequest request = null ; /// <summary> /// FTP响应对象 /// </summary> FtpWebResponse response = null ; /// <summary> /// FTP服务器长地址 /// </summary> public string FtpURI { get ; private set ; } /// <summary> /// FTP服务器IP /// </summary> public

【实战】从零开始使用JavaScript制作自己的命令行(CLI工具)

与世无争的帅哥 提交于 2020-04-23 22:12:10
我们每天都使用CLI程序(例如Terminal,cmd,Powershell等)进行软件开发。你使用的每个工具本质上都是其他软件工程师的产品,我们也可以制作自己的CLI工具。 从零开始的简单CLI,让我们开始吧! 首先,让我们制作一个简单的CLI工具,该工具会打印“ HelloWord” 要制作CLI,您需要制作两个文件 package.json:将设置和配置指定入口 index.js:根据CLI命令的可执行文件 添加Package.json 文件 // package.json { "name": "my-cli", "version": "0.0.1", "description": "nodejs cli program", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Dunizb", "license": "ISC" } 复制代码 在package.json中,指定有关当前CLI程序的元数据, name , version , description 、 author 等。 创建 index.js 可执行文件 // index.js #! /usr/bin/env node console .log( 'Hello

SpringCloud上传文件夹的三种解决方案

邮差的信 提交于 2020-04-23 21:48:45
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径 File file1 = new File(filePath);//添加了自动创建目录的功能 ((File)file1).mkdir(); newfileName = System.currentTimeMillis() + file.getFileName().substring( file.getFileName().lastIndexOf('.')); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + newfileName); newpathname = filePath + "/" +

search(6)- elastic4s-CRUD

♀尐吖头ヾ 提交于 2020-04-23 07:18:02
如果我们把ES作为某种数据库来使用的话,必须熟练掌握ES的CRUD操作。在这之前先更正一下上篇中关于检查索引是否存在的方法:elastic4s的具体调用如下: // 删除索引 val rspExists = client.execute(indexExists( " company " )). await if (rspExists.result.exists) client.execute(deleteIndex( " company " )). await 在下面我们还会示范如何检查一条记录(document)是否存在的方法。 先示范新建一条记录。一般来讲数据库表都有个唯一字段,最好用ES里的id来代表,否则ES会自动产生一个唯一id,那么随机读取get时就会很不方便。如果新插入的记录id已经在表里存在,ES会替换新的内容,不会产生异常。可以在elastic4s里使用createOnly(true)来强制产生重复id异常: import com.sksamuel.elastic4s.{ElasticClient, ElasticProperties} import com.sksamuel.elastic4s.akka._ import akka.actor._ import scala.concurrent.ExecutionContext.Implicits. global

ABP开发框架前后端开发系列---(4)Web API调用类的封装和使用

泪湿孤枕 提交于 2020-04-23 06:24:36
在前面随笔介绍ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以及简化了ABP框架的各个层的内容,使得我们项目结构更加清晰。上篇随笔已经介绍了字典模块中应用服务层接口的实现情况,并且通过运行Web API的宿主程序,可以在界面上进行接口测试了,本篇随笔基于前面介绍的基础上,介绍Web API调用类的封装和使用,使用包括控制台和Winform中对调用封装类的使用。 在上篇随笔《 ABP开发框架前后端开发系列---(3)框架的分层和文件组织 》中我绘制了改进后的ABP框架的架构图示,如下图所示。 这个项目分层里面的 03-Application.Common 应用服务通用层,我们主要放置在各个模块里面公用的DTO和应用服务接口类。有了这些DTO文件和接口类,我们就不用在客户端(如Winform客户、控制台、WPF/UWP等)重复编写这部分的内容,直接使用即可。 这些DTO文件和接口类文件,我们的主要用途是用来封装客户端调用Web API的调用类,使得我们在界面使用的时候,调用更加方便。 1)Web API调用类封装 为了更方便在控制台客户端、Winform客户端等场景下调用Web API的功能,我们需要对应用服务层抛出的Web API接口进行封装,然后结合DTO类实现一个标准的接口实现。 由于这些调用类可能在多个客户端中进行共享,因此根据我们在混合框架中积累的经验

从文件中读取各学生的成绩,并计算所有学生成绩平均值、最大值、最小值,总分

大城市里の小女人 提交于 2020-04-23 05:57:23
package cn.edu.njitt4; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Test_mark { /*从文件中读取各学生的成绩,并计算所有学生成绩平均值、最大值、最小值,总分 */ public static void main(String[] args) { // TODO Auto-generated method stub double avg=0;//平均值 double sum=0;//总分 double tmp=0;//中间变量 double max=0;//最大值 double min=100;//最小值 int linenumber=0; try { BufferedReader bReader=new BufferedReader(new FileReader("mark.txt")); String line; while((line=bReader.readLine())!=null){ linenumber++; tmp=Double.parseDouble(bReader.readLine()); /

search(6)- elastic4s-CRUD

扶醉桌前 提交于 2020-04-23 05:05:08
如果我们把ES作为某种数据库来使用的话,必须熟练掌握ES的CRUD操作。在这之前先更正一下上篇中关于检查索引是否存在的方法:elastic4s的具体调用如下: // 删除索引 val rspExists = client.execute(indexExists( " company " )). await if (rspExists.result.exists) client.execute(deleteIndex( " company " )). await 在下面我们还会示范如何检查一条记录(document)是否存在的方法。 先示范新建一条记录。一般来讲数据库表都有个唯一字段,最好用ES里的id来代表,否则ES会自动产生一个唯一id,那么随机读取get时就会很不方便。如果新插入的记录id已经在表里存在,ES会替换新的内容,不会产生异常。可以在elastic4s里使用createOnly(true)来强制产生重复id异常: import com.sksamuel.elastic4s.{ElasticClient, ElasticProperties} import com.sksamuel.elastic4s.akka._ import akka.actor._ import scala.concurrent.ExecutionContext.Implicits. global

搞定这套Python爬虫面试题,面试so easy

孤人 提交于 2020-04-23 05:04:29
本文是看到一粉丝的一个开源项目,目前只是完成了部分面试题的搜集,需要大家一起努力完成该项目。本篇只是部分Python基础的面试题。 先来一份完整的爬虫工程师面试考点: 另外注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教! 一、 Python 基本功 1、简述Python 的特点和优点 Python 是一门开源的解释性语言,相比 Java C++ 等语言,Python 具有动态特性,非常灵活。 2、Python 有哪些数据类型? Python 有 6 种内置的数据类型,其中不可变数据类型是Number(数字), String(字符串), Tuple(元组),可变数据类型是 List(列表),Dict(字典),Set(集合)。 3、列表和元组的区别 列表和元组都是可迭代对象,能够对其进行循环、切片等,但元组 tuple 是不可变的。元组不可变的特性,使得它可以成为字典 Dict 中的键。 4、Python 是如何运行的 CPython: Python 程序运行时,会先进行编译,将 .py 文件中的代码编译成字节码(byte code),编译结果储存在内存的

委托与事件-委托事件案例(三)

感情迁移 提交于 2020-04-22 06:30:39
前言   这两天一直在想如何结合实际案例来结束委托与事件的讲解,下面讲解两个事例,用来加深对委托及事件的理解。 事例一(分页功能)   本场景是用来讲解使用的,具体内容功能需自行填补实现。用委托加事件来实现分页功能的通用。按上一节讲解中的逻辑处理,分为订阅者和发布者,一样的可以先定义订阅者感兴趣的对象,然后发布者,订阅者。再就是主程序调用。    /// <summary> /// 首先定义订阅者感兴趣的对象,本例感兴趣的是上一页下一页等方法。这里使用Action抽象 /// </summary> public class PageChangeEventArgs : EventArgs { public string Action { get ; set ; } public int PageIndex { get ; set ; } public PageChangeEventArgs() { } public PageChangeEventArgs( string action, int pageIndex) { this .Action = action; this .PageIndex = pageIndex; } } /// <summary> /// 定义发布者 /// </summary> public class PageActionPubliser { //

Java NIO 学习笔记(七)----NIO/IO 的对比和总结

白昼怎懂夜的黑 提交于 2020-04-22 04:05:31
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Selector Java NIO 学习笔记(四)----文件通道和网络通道 Java NIO 学习笔记(五)----路径、文件和管道 Path/Files/Pipe Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel Java NIO 学习笔记(七)----NIO/IO 的对比和总结 学完 NIO 和 IO 后,有一个问题:什么时候应该使用 IO,什么时候应该使用 NIO ?本文将尝试阐明 NIO 和 IO 之间的差异,并提供它们的用例,以及它们对程序代码的设计影响。 NIO 和 IO 之间的主要区别 IO NIO 以 Stream 为导向 以 Buffer 为导向 阻塞 IO 非阻塞 IO 选择器 以 Stream 为导向 vs 以 Buffer 为导向 NIO 和 IO 之间的第一个重要区别是 IO 是面向流的,其中 NIO 是面向缓冲区的。 那么,这意味着什么? 面向流的 IO 意味着可以从流中一次读取一个或多个字节,可以按我们的意愿使用读取的字节。 它们不会缓存在任何地方,此外,无法在流中的将数据前后移动。 如果需要将读取的数据前后移动