java - 缓冲阅读器抛出异常
问题描述
我想打印 hello “t” 次。所以,我写了这个代码片段。
import java.util.*;
import java.io.*;
class Buff
{
public static void main(String args[])
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
while(t-->0)
bw.write("hello");
}
}
它输出异常
Buff.java:11: error: unreported exception IOException; must be caught or declared to be thrown
String t = br.readLine();
^
Buff.java:14: error: unreported exception IOException; must be caught or declared to be thrown
bw.write("hello");
请帮忙 !!! PS:即使我抛出 IOException 也无济于事
解决方案
您必须捕获可能的异常(在这种情况下IOException
)。
基本语法如下所示:
try {
//Your code here
}
catch(IOException e) {
//What do you want to do when something went wrong?
}
在您的情况下,以下代码将起作用:
import java.util.*;
import java.io.*;
class Buff
{
public static void main(String args[])
{
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
//Closing Readers and Writers when not needed anymore is good-practice
br.close();
//"-->" wasn't working for me in this case
while(t > 0) {
bw.write("hello\n");
t--;
}
bw.flush();
bw.close();
}
//Catching possible exceptions
catch(IOException e) {
e.printStackTrace();
}
}
}
推荐阅读
- blazor - Blazor 或某些 NuGet 包是否支持或扩展嵌套路由的路由?
- android - 将 ACTION_GET_CONTENT 获得的图像复制到外部存储
- c++ - clang-tidy 与结构化绑定
- java - 构建期间的 Maven HTTP 失败
- git - 为什么 Azure Devops Pipelines Docker Build 不能正确地将我的提交版本标记到我的 dotnet 核心程序集中?
- c++ - 嵌套for循环不循环通过第二个数组
- flutter - 颤振究竟是如何渲染小部件的?
- python - 将 25 gigs 文本文件加载到 Mysql(python 脚本或 LOAD DATA)的最佳方法?
- c - VSCode 'Go to definition' 不仅仅适用于大型项目
- c# - 在静态类中配置静态 StreamWriter