首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Java 中文官方教程 2022 版(九)

这个实现了FileVisitor接口,访问树所有文件,并在遇到错误抛出IOError。您可以扩展这个,并仅覆盖您需要方法。...WatchDir示例保存到您计算机上,并对其进行编译。创建一个递给示例test目录。WatchDir使用单个线程处理所有事件,因此在等待事件时会阻止键盘输入。...许多方法在失败时不会抛出异常,因此无法获得有用错误消息。例如,如果文件删除失败,程序收到“删除失败”,但不知道是因为文件不存在、用户没有权限还是其他问题。... java.io.File 功能映射到 java.nio.file 由于 Java SE 7 发布文件 I/O 实现已完全重新架构,因此不能将一个方法替换为另一个方法。...如果一个线程频繁调用这个方法,其他也需要频繁同步访问同一对象线程经常被阻塞。 活锁 一个线程经常是作为另一个线程动作响应。

5700

IO工具包最基本工具包,难道你还不会用?

EndianUtils 包含静态方法来交换Java基本类型和流字节序 SwappedDataInputStream实现了DataInput接口。可以从文件读取非本地字节序。...FileUtils.copyDirectoryToDirectory(File srcDir, File destDir) // 以子目录形式文件夹复制到到另一个文件夹下 // 复制文件 FileUtils.copyFile...包下有许多InputStrem实现,我们来测试一个最实用,TeeInputStream,InputStream以及OutputStream作为参数传入其中,自动实现将输入流数据读取到输出流...OutputStream实现,这里介绍TeeOutputStream,它可以输出流进行分流,换句话说我们可以用一个输入流数据分别读入到两个不同输出流。...3、创建一个FileAlterationMonitor 对象,已经创建好observer对象添加其中并且传入时间间隔参数(单位是毫秒)。

1.3K50

Java面试集锦(一)之Java异常

如果未找到处理程序,则应用程序异常抛出到运行时环境,JRE终止该程序。 Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2....void printStackTrace() - 此方法堆栈跟踪信息打印到标准错误流,此方法已重载,我们可以PrintStream或PrintWriter作为参数传递,以堆栈跟踪信息写入文件或流。...自定义异常可以拥有自己变量和方法,我们可以使用它们错误代码或其他与异常相关信息传递给异常处理程序。 自定义异常一个简单示例如下所示。...主线程异常”有哪些不同情况 一些常见主线程异常情况是: 主线程java.lang.UnsupportedClassVersionError异常: 当您java是从另一个JDK版本编译并且您尝试从另一个...主线程java.lang.NoSuchMethodError异常: main:当您尝试运行没有main方法时会出现此异常。

1K40

Java异常处理9个最佳实践

错误代码另一个严重缺点是缺乏上下文信息,你可能知道错误码“-5”代表找不到文件,但究竟找不到哪个文件呢!错误码就无法表述了。...Java异常体系 在Java,所有的异常都有一个共同祖先Throwable,它有2个子类:Exception(异常)和Error(错误),它们又各自有大量子类。...比如NumberFormatException,当java.lang.Long构造函数抛出异常时会提供一句简短且清晰文本来描述。...forInputString会把java.lang.Long构造参数格式化后再构造一个新NumberFormatException实例并抛出 /** * Factory method for making...9 不消费包装异常 比较可取做法是捕捉到标准异常,根据实际业务自定义包装异常再向上抛出。在包装异常时通常把原始异常作为构造参数进来,否则会丢失栈跟踪信息,造成分析困难。

58420

【Tomcat】《How Tomcat Works》英文版GPT翻译(第一章)

其中一个构造函数接受主机名和端口号作为参数: public Socket (java.lang.String host, int port) where host is the remote machine...要将消息从您应用程序发送到另一个应用程序,您需要知道另一个应用程序套接字IP地址和端口号。在Java,套接字由java.net.Socket表示。...如果您浏览器位于同一台计算机上,您可以使用localhost作为machineName。port是8080,staticResource是所请求文件名称,必须位于WEB_ROOT。...它首先通过父路径和子路径传递给File构造函数来实例化java.io.File。...在本章,你看到一个简单网络服务器是如何工作。本章附带应用程序只有三个,功能并不完整。不过,它是一个很好学习工具。下一章讨论动态内容处理。

24210

NIO--FileLock,Path,Files,AsynchronousFileChannel,Charset

在 try-catch 块,用路径作为参数调用Files.createDirectory()方法。如果创建目录成功,返回一个 Path 实例,该实例指向新创建路径。...如果该目录已经存在,则是抛出一个 java.nio.file.FileAlreadyExistsException。如果出现其他错误,可能会抛出 IOException。...然后,这个例子调用 Files.copy(),两个 Path实例作为参数传递。这可以让源路径引用文件被复制到目标路径引用文件。...如果目标文件已经存在,则抛出一个 java.nio.file.FileAlreadyExistsException 异常。 如果有其他错误,则会抛出一个 IOException。...,请查看java.nio.file.Files JavaDoc AsynchronousFileChannel Java NIOFileChannel是一个连接到文件通道。

60720

会用python把linux命令写一遍的人,进大厂有多容易?

argparse.ArgumentParse参数理解 1. prog:改变应用名字,我们可以使用`%(prog)s`引用应用名字,默认应用名字为文件名。...- nargs='*': 所有的参数保存在列表 - nargs='+': 所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个...6. choices: 参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必参数。..., help='是否递归显示') # 解析参数 args = parser.parse_args() # 拿到directory参数,如果没有这个参数,为None directory = args.directory...,文件夹 # 遍历self.directory目录先所有文件文件夹 pass ls这个我们也封装好了,接下来我们将得到参数传入 LsCommand ,然后运行

64130

Java异常处理和设计

五、Throwable常用方法 注意:catch关键字后面括号Exception类型参数e。Exception就是try代码块传递给catch代码块变量类型,e就是变量名。...getMeage():返回异常消息信息。 printStackTrace():对象堆栈跟踪输出至错误输出流,作为字段 System.err 值。...自定义异常时,通常需要提供两个构造器,(1)、一个无参构造器;(2)带一个字符串参数构造器,该字符串作为异常对象描述信息(即异常对象getMessage()方法返回值,用于初始化继承自父...在异常链自定义一个异常通常还需添加一个构造器,构造器带有一个异常类型参数,该参数用于初始化从Throwable继承cause对象,这个cause对象用于表示原始异常,使得抛出异常,程序员仍然可以通过这个新异常到原始异常...,比较好方式是所有错误提示信息放在一个配置文件中统一管理。

96310

如何利用Python学习linux命令?

argparse.ArgumentParse参数理解 1. prog:改变应用名字,我们可以使用`%(prog)s`引用应用名字,默认应用名字为文件名。...- nargs='*': 所有的参数保存在列表 - nargs='+': 所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个...6. choices: 参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必参数。..., help='是否递归显示') # 解析参数 args = parser.parse_args() # 拿到directory参数,如果没有这个参数,为None directory = args.directory...,文件夹 # 遍历self.directory目录先所有文件文件夹 pass ls这个我们也封装好了,接下来我们将得到参数传入 LsCommand ,然后运行

79510

会用python把linux命令写一遍的人,进大厂有多容易?

argparse.ArgumentParse参数理解 1. prog:改变应用名字,我们可以使用`%(prog)s`引用应用名字,默认应用名字为文件名。...- nargs='*': 所有的参数保存在列表 - nargs='+': 所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个...6. choices: 参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必参数。..., help='是否递归显示') # 解析参数 args = parser.parse_args() # 拿到directory参数,如果没有这个参数,为None directory = args.directory...,文件夹 # 遍历self.directory目录下所有文件文件夹 pass ls这个我们也封装好了,接下来我们将得到参数传入 LsCommand ,然后运行

59320

【Tomcat】《How Tomcat Works》英文版GPT翻译(第三章)

Tomcat使用方法是错误消息存储在一个属性文件,以便于编辑。 然而,在Tomcat中有数百个所有使用错误消息存储在一个大属性文件中会很容易造成维护上困难。...为了避免这种情况,Tomcat为每个包分配一个属性文件。 例如,org.apache.catalina.connector包属性文件包含了该包任何可能抛出所有错误消息。...当一个包需要在该包属性文件查找错误消息时,它首先会获取一个StringManager实例。...StringManager,包名传递给 StringManager getManager 方法。...否则,抛出IllegalStateException异常。 然而,可以随时进行值读取。 ParameterMap在3.6节给出。 它重写了添加、更新和删除值方法。

19310

FastAPI从入门到实战(12)——错误处理

不为MinChess时候抛出错误错误代码为404,详细信息为not found 添加自定义响应头 @app08.get("/stu08/header/{id}") def stu08_get_error_header...HTTP错误添加一些自定义响应头,添加方法如上,直接设置HTTPExceptionheaders即可; 自定义异常处理器 定义一个Exception类型错误UnicornException...self.name = name 在主应用为UnicornException错误定义处理函数,如果没在同一个文件内,需要导入对应,参考文末源码; @app.exception_handler(exception.UnicornException...,返回PlainTextResponse信息时会在控制台打印具体错误; 上面的第二个函数就是重写HTTPException异常处理器,同样返回PlainTextResponse信息时会在控制台打印具体错误...; 参数校验 这部分不需要重新写操作函数,找到之前写某一个请求,发送错误类型错误就会抛出异常: HTTPException @app08.get("/stu08/Request_Validation_Error

1.5K10

Java并发编程:如何创建线程?

注意,这种方式必须将Runnable作为Thread参数,然后通过Threadstart方法来创建一个新线程来执行该子任务。...三.Java如何创建进程    在Java,可以通过两种方式来创建进程,总共涉及到5个主要。   ...,第一个构造器是命令参数放进List当中进去,第二构造器是以不定长字符串形式进去。   ...就是命令字符串传给ProcessBuilder构造器,一般来说,是把字符串每个独立命令作为一个单独参数,不过也可以按照顺序放入List进去。   ...至于其他很多具体用法不在此进行赘述,比如通过ProcessBuilderenvironment方法和directory(File directory)设置进程环境变量以及工作目录等,感兴趣朋友可以查看相关

75540

【Tomcat】《How Tomcat Works》英文版GPT翻译(第二章)

下文讨论应用程序每个。...但是,如果调用另一个 servlet(ModernServlet),该 servlet 容器就会抛出异常。在后面的章节,你构建能同时处理这两种程序应用程序。...在getWriter方法,PrintWriter构造函数第二个参数是一个布尔值,用于指示是否启用自动刷新。true作为第二个参数传递将使任何对println方法调用刷新输出。...在ServletProcessor1process方法,你ex02.pyrmont.Request实例向上转型为javax.servlet.ServletRequest,并将其作为第一个参数递给...你还将ex02.pyrmont.Response实例向上转型为javax.servlet.ServletResponse,并将其作为第二个参数递给servletservice方法。

20410

【Tomcat】《How Tomcat Works》英文版GPT翻译(第八章)

这样可以方便程序员,因为他们可以 JAR 文件复制到此扩展目录,而这些 JAR 文件将被自动搜索。 扩展库因供应商而异。 Sun JVM 标准扩展目录为 /jdk/jre/lib/ext。...当程序某个地方调用自定义java.lang.Object时,系统加载器请求委托给扩展加载器,后者再委托给引导加载器。...因此,如果您自定义加载器没有扩展 WebappClassLoader,这个方法抛出异常。...WEB-INF/classes目录传递给加载器 addRepository 方法,WEB-INF/lib目录传递给加载器 setJarPath 方法。...WebappClassLoader 可以加载每个(可以作为文件部署在 WEB-INF/classes 下,也可以来自 JAR 文件)都被称为资源。

12910

干货分享|Java异常经典14问,你都能答对吗?

如果未找到处理程序,则应用程序异常抛出到运行时环境,JRE终止该程序。 Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2、Java异常处理关键字是什么?...void printStackTrace() - 此方法堆栈跟踪信息打印到标准错误流,此方法已重载,我们可以PrintStream或PrintWriter作为参数传递,以堆栈跟踪信息写入文件或流。...我们可以扩展Exception或其任何子类来创建我们自定义异常。自定义异常可以拥有自己变量和方法,我们可以使用它们错误代码或其他与异常相关信息传递给异常处理程序。...一些常见主线程异常情况是: 主线程java.lang.UnsupportedClassVersionError异常: 当您java是从另一个JDK版本编译并且您尝试从另一个Java版本运行它时...主线程java.lang.NoSuchMethodError异常: main:当您尝试运行没有main方法时会出现此异常。

88820
领券