readline

基础系列(5)—— C#控制语句

冷暖自知 提交于 2020-11-19 06:03:13
语句是程序中最小程序指令。C#语言中可以使用多种类型的语句,每一种类型的语句又可以通过多个关键字实现。以下是 C# 语言中使用的主要控制语句  类别       关键字                       选择语句      if、else、switch、case 循环语句      do、for、foreach、in、while 跳转语句      break、continue、default、goto、return 异常处理语句    throw、try-catch、try-finally 检查和未检查语句  checked、unchecked 非保护和固定语句  unsafe、fixed 锁定语句      lock 一、 选择语句   选择语句根据某个条件是否成立,来控制程序的执行流程。有两种结构的选择语句:   if-else 结构    switch-case 结构 (一) if-else 语句   if-else 语句根据 Boolean 表达式的值选择要执行的语句。if-else 语句的形式为:     if (expression)      statement1     [ else      statement2]   其中:expression 是 bool 类型的表达式,或者是可以隐式转换为bool类型的表达式,也可以是重载了 true 和

Spring Boot实战:静态资源处理

这一生的挚爱 提交于 2020-11-14 10:37:50
  前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据。而做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一、最笨的方式   我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目录下,并且规定任何访问路径以/static/开头的即访问该目录下的静态资源,其实现如下: @Controller public class StaticResourceController { @RequestMapping("/static/**") public void getHtml(HttpServletRequest request, HttpServletResponse response) { String uri = request.getRequestURI(); String[] arr = uri.split("static/"); String

java实现hello/hi聊天程序

不羁岁月 提交于 2020-11-13 07:58:06
1.使用java实现服务器与客户端之间的对话,客户端与服务器 服务器端代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.HashMap; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Chat { // 运行在服务端的Socket private ServerSocket server; // 线程池,用于管理客户端连接的交互线程 private

.NET Core 跨平台物联网开发:连接阿里云IOT(一)

对着背影说爱祢 提交于 2020-11-13 01:41:13
系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四) SDK文档 属性、方法、委托、类 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/AliIOTXFclient-dll类库&response 下载三个库,头部引入 即可使用 using AliIOTXFClient; 示例下载地址 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/demo示例 本章使用示例 AliIOTXF.One 二,阿里云 IOT 创建产品设备 打开地址 https://iot.console.aliyun.com/product 创建一个产品 节点类型选择设备、非网关,因为是直接对接有网络能力的设备。透传需要写 JS 解析脚本,Alink Json 使用方便、不易出错,也更便于理解。ID² 提供了双向身份认证能力,但是收费。 创建设备 创建成功后记得 “ 一键复制 ” ,然后存放到记事本等保存。(保不保存没事,可以到里面复制) 附上阿里云创建产品的文档 https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11174283.6.553.3a8b1668QRyRs7 创建后的设备 三,创建项目

Java Socket通信

心不动则不痛 提交于 2020-11-05 14:20:54
1、单一客户端与服务器: package com.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { // 创建Socket对象,绑定并监听窗口 ServerSocket serverSocket = new ServerSocket(8888 ); System.out.println( "服务器已启动,等待客户端连接..." ); Socket socket = serverSocket.accept(); // 监听并接收到此套接字的连接,返回一个Socket对象 // 根据输入输出流和客户端连接 InputStream inputStream = socket.getInputStream(); // 得到一个输入流

try、catch、finally详解,你不知道的异常处理

淺唱寂寞╮ 提交于 2020-11-03 11:10:14
介绍 不管是新手还是工作几年的老油条,对try{}catch{}来说是不陌生的。他可以来帮助我们获取异常信息,在try中的代码出现错误,火灾catch代码块中被捕获到。官方也给了详细的解释:。 抛出异常时,公共语言运行库(CLR)会查找 catch 处理此异常 的 语句。 如果当前正在执行的方法不包含这样的 catch 块,则CLR会查看调用当前方法的方法,依此类推调用堆栈。 如果未 catch 找到 任何 块,则CLR向用户显示未处理的异常消息并停止执行该程序。 以上的这些基础我们可能都了解。但是你真的了解他的运行步骤吗?我就是带着这个疑问进行了一下的几个测试。 简单示例: 既然有了疑问就带着疑问想办法验证吧,下面我们通过多个例子来一步一步的分析得到我们想要的结果。 简单的try catch 首先是一个try中没有异常的示例: static void Main( string [] args) { string result = GetStr(); Console.WriteLine(result); Console.ReadLine(); } public static string GetStr() { try { Console.WriteLine( " 走到:try " ); return " 这里是try返回值 " ; } catch (Exception e) {

C# CSV文件读写

我与影子孤独终老i 提交于 2020-10-31 04:03:52
public class CSVFileHelper { /// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// <param name="dt">提供保存数据的DataTable</param> /// <param name="fileName">CSV的文件路径</param> public static void SaveCSV(DataTable dt, string fullPath) { FileInfo fi = new FileInfo(fullPath); if (!fi.Directory.Exists) { fi.Directory.Create(); } FileStream fs = new FileStream(fullPath, System.IO.FileMode.Create, System.IO.FileAccess.Write); //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8); string data = ""; //写出列名称 for (int i =

python--文件的读写操作

回眸只為那壹抹淺笑 提交于 2020-10-28 20:50:25
Python提供了必要的函数和方法进行默认情况下的文件基本操作 文件打开方式: open(name[,mode[buf]]) name:文件路径 mode:打开方式 buf:缓冲buffering大小 文件读取方式: read([size]):读取文件(读取size字节,默认读取全部) readline( [size]):读取一行 readline( [size]) :读取缓冲buf(io.DEFAULT_SET_BUFFER),返回每一行所组成的列表 iter:使用迭代器遍历读取文件 f.open(name);iter_f = iter(f);用for line in iter_f循环迭代器 with open( 'pi_digits.txt') as f: # 默认模式为‘r’,只读模式 contents = f.read() # 读取文件全部内容 文件写入方式: write(str):将字符串写入文件 writelines(sequence_of_strings):写多行到文件,参数为可迭代的对象 当调用write(str)时,python解释器调用系统调用想把把内容写到磁盘,但是linux内核有文件缓存机制,所以缓存到内核的缓存区,当调用close()或flush()时才会真正的把内容写到文件 或者写 入数据量大于或者等于写缓存,写缓存也会同步到磁盘上 关闭文件的目的 1

异常Exception(三)

坚强是说给别人听的谎言 提交于 2020-10-27 18:57:16
使用try...catch...捕获异常,如果能预料到某些异常可能发生,可以使用精确的异常例如“FileNotFoundException”、“DirectoryNotFoundException”、“IOException”等,最有使用一般异常“Exception”。 using System; using System.Collections; using System.IO; namespace ConsoleApp5 { class Program { static void Main( string [] args) { try { using (StreamReader sr = File.OpenText( " data.txt " )) { Console.WriteLine($ " The first line of this file is {sr.ReadLine()} " ); } } catch (FileNotFoundException e) { Console.WriteLine($ " The file was not found: '{e}' " ); } catch (DirectoryNotFoundException e) { Console.WriteLine($ " The directory was not found: '{e}'

C# 基础知识系列- 14 IO篇 流的使用

主宰稳场 提交于 2020-10-27 16:49:45
0. 前言 继续之前的C# IO流,在前几篇小短片中我们大概看了下C# 的基础IO也对文件、目录和路径的操作有了一定的了解。这一篇开始,给大家演示一下流的各种操作。以文件流为例,一起来看看如何操作吧。 注:之前更新了一篇《Spring Cloud 实战日记》,这是一个新的系列,有兴趣的小伙伴可以从我的账号首页进去看看。 1. 简单的IO流读写文件 先来看一部分代码: class Program { static void Main(string[] args) { var directory = Directory.GetCurrentDirectory(); var program = File.Open("../../../Program.cs", FileMode.OpenOrCreate); // program = File.Open("Program.cs", FileMode.OpenOrCreate); var buffers = new byte[1024];// 创建一个8k的缓存区 var list = new List<byte>(); while(true) { int length = program.Read(buffers, 0, buffers.Length); if(length <=0) { break; } list.AddRange