Java:列出目录中的文件介绍许多应用程序都以某种方式处理文件,而文件操作是任何编程语言中的核心知识之一。
为了操作文件,我们需要知道它们的位置。如果要完成此任务,那么对目录中的文件进行概述是至关重要的,特别是如果我们可以通过迭代对其执行操作的话。在Java中有几种方法可以做到这一点,我们将在本文中进行介绍。
为了简单起见,所有示例将针对以下文件树编写:
12345678910Programming|-- minimax.c|-- super_hack.py|-- TODO.txt`-- CodingMusic |-- Girl Talk - All Day.mp3 |-- Celldweller - Frozen.mp3 |-- Lim Taylor - Isn't It Wonderful.mp3 `-- Radiohead - Everything in Its Right Place.mp3
File.list()在不遍历子目录的情况下列出给定目录中文件和文件夹名称的最简单方法是helper方法.list(),该方法返回String数组。
我 ...
Java中的Lambda表达式介绍Lambda函数是Java 8附带的一项功能,它是该语言向函数式编程迈出的第一步,这是实现各种兼容范例的有用功能的普遍趋势。
引入lambda函数的动机主要是为了减少传递给类实例以模拟其他语言的匿名函数的繁琐的重复代码。
这是一个例子:
12345678910String[] arr = { "family", "illegibly", "acquired", "know", "perplexing", "do", "not", "doctors", "where", "handwriting", "I" };Arrays.sort(arr, new Comparator<String>() { @Override public int compare(String s1, String ...
前提Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为Lettuce。Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样:
既然能被Spring生态所认可,Lettuce想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。编写本文时所使用的版本为Lettuce 5.1.8.RELEASE,SpringBoot 2.1.8.RELEASE,JDK [8,11]。超长警告:这篇文章断断续续花了两周完成,超过4万字…..
Lettuce简介Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API,5.1版本的新特性如下:
支持Redis的新增命令ZPOPMIN, ZPOPMAX, BZPOPM ...
redis
未读
如何在ubuntu18.04上安装和保护redis
如何连接到Redis数据库
如何管理Redis数据库和Keys
如何在Redis中管理副本和客户端
如何在Redis中管理字符串
如何在Redis中管理list
如何在Redis中管理Hashes
如何在Redis中管理Sets
如何在Redis中管理Sorted Sets
如何在Redis中运行事务
如何使Redis中的Key失效
如何解决Redis中的故障
如何从命令行更改Redis的配置
Redis数据类型简介
Redis 中如何使用 lua脚本
Redis 常用命令指南
Lua:Redis用户指南你应该听说过Redis具有嵌入式脚本语言,但是还没有尝试过吗?下面您在Redis服务器上使用Lua的功能时需要了解的内容。
你好,Lu!我们的第一个Redis Lua脚本仅返回一个值,而没有实际与Redis进行任何有意义的交互:
local msg = "Hello, world!"
return msg
这很简单。第一行使用我们的消息设置了一个局部变量,第二行从Redis服务器将该值返回给客户端。将此文件另 ...
1.概述在本文中,我们将介绍Spring Boot Actuator. 我们将首先介绍基础知识,然后详细讨论Spring Boot 2.x和1.x中的可用内容.
我们将学习如何利用反应式编程模型在Spring Boot 2.x和WebFlux中使用,配置和扩展此监视工具. 然后,我们将讨论如何使用Boot 1.x执行相同的操作.
自2014年4月起,Spring Boot Actuator随Spring Boot一起发布.
随着Spring Boot 2,对Actuator进行了重新设计,并添加了新的令人兴奋的Endpoints.
我们将本指南分为三个主要部分:
[What is an Actuator?]
[Spring Boot 2.x Actuator]
[Spring Boot 1.x Actuator]
2. What is an Actuator?本质上,Actuator为我们的应用带来了生产就绪功能.
监视我们的应用程序,收集指标,了解流量或数据库状态对于这种依赖性变得微不足道.
该库的主要好处是,我们可以获得生产级工具,而不必自己真正实现这些功能.
Ac ...
概述: Spring MVC 3.2 M1将引入基于Servlet 3.0支持的异步请求处理,我将针对Spring MVC 3.2的新特性发布一系列文章,并通过对背景知识和相关内容的充分介绍,让你了解你为什么需要这些新特性,以及如何使用这些新特性。这是这一系列文章中的第一篇。
Spring MVC 3.2的更新内容已经可以在Spring Framework Github中查看,也可以将http://repo.springsource.org/snapshot设置在你的项目仓库中,来获取快照版本。在后面的文章中,我也将提供一些源码示例的链接。但如果你想现在就尝试这些新特性,也可以在GitHub上签出[spring-mvc-async](https://github.com/SpringSource/spring-mvc-showcase/tree/spring-mvc-async “spring-mvc-async”)中的spring-mvc-showcase项目,并通过提交记录查看其中的更新信息。
惊鸿一瞥: 从编程模型的角度来看,可能会出现看似简单的新功 ...
在本文中,我们将向您展示Spring Boot REST应用程序中的错误处理。
使用的技术:
Spring Boot 2.1.2发布
Spring 5.1.4。发布
Maven 3
Java 8
1. /error1.1默认情况下,Spring Boot提供了一个BasicErrorController用于/error处理所有错误的映射控制器,并getErrorAttributes生成一个带有错误详细信息,HTTP状态和异常消息的JSON响应。
{
"timestamp":"2019-02-27T04:03:52.398+0000",
"status":500,
"error":"Internal Server Error",
"message":"...",
"path":"/path"
}
BasicErrorController.java
package o ...
基于SpringBoot2.0+ Actuator metrics的监控(基于Oracle JDK9,G1)引言SpringBoot2在spring-boot-actuator中引入了micrometer,对1.x的metrics进行了重构,另外支持对接的监控系统也更加丰富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront)。本文以Prometheus为例阐述SpringBoot2.0的监控。
eg. PrometheusPrometheus中文文档
Maven坐标123456789<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <gr ...
shell-tutorial
未读Tutorial一旦为Shell变量分配了值,便会创建它们。变量可以包含数字,字符或字符串。变量名区分大小写,可以由字母和下划线“ _”组成。值分配使用“ =”符号完成。请注意,初始化变量时,=符号的两侧均不允许有空格。
PRICE_PER_APPLE=5
MyFirstLetters=ABC
greeting='Hello world!'
引用变量
反斜杠“ \”用于转义特殊字符的含义
PRICE_PER_APPLE=5
echo "The price of an Apple today is: \$HK $PRICE_PER_APPLE"
使用$ {}封装变量名可避免歧义
MyFirstLetters=ABC
echo "The first 10 letters in the alphabet are: ${MyFirstLetters}DEFGHIJ"
用“”封装变量名将保留所有空格值
greeting='Hello world!'
e ...
shell-tutorial
未读Passing Arguments to the Script可以在执行脚本时将参数传递为脚本,方法是在脚本文件名后将其作为空格分隔的列表编写。
在脚本内部,$1变量引用命令行中的第一个参数,$2引用第二个参数,依此类推。变量$0引用当前脚本。在以下示例中,脚本名称后跟6个参数。
./bin/my_shopping.sh apple 5 banana 8 "Fruit Basket" 15
echo $3 --> results with: banana
BIG=$5
echo "A $BIG costs just $6" --> results with: A Fruit Basket costs just 15
变量$#保留传递给脚本的参数数量
echo $# –> results with: 6
变量$@包含一个以空格分隔的字符串,其中包含传递给脚本的所有参数
Exercise本节没有练习。您可以继续。
Tutorial Code#! ...
