java 中的reader_Java中的BufferedReader ready()方法及其示例

Java中BufferedReader类的ready()方法用于验证缓冲流是否准备好读取。缓冲区流在两种情况下被称为就绪缓冲区不为空或主流已就绪。语法:抛出IOException重写:此方法重写读取器

Java中BufferedReader类的ready()方法用于验证缓冲流是否准备好读取。缓冲区流在两种情况下被称为就绪缓冲区不为空或主流已就绪。

语法:

抛出IOException

重写:此方法重写读取器类的ready()方法。

参数:此方法不接受任何参数。

返回值:如果流已准备好读取,则返回true;否则返回false。

异常:如果发生I/O错误,则此方法引发IOException。

下面的

程序演示了IO包中BufferedReader类中的ready()方法:

程序1:假设文件“c”存在:/演示.txt“

filter_none

edit close

play_arrow

link brightness_4 code

//Java程序演示//BufferedReader ready()方法导入java.io语言.*; 公共类GFG{public static void main(String[]args){//读取流'演示.txt'//containing text“GEEKS”FileReader FileReader=new FileReader(“c:/演示.txt" ); //Convert fileReader to//bufferedReader bufferedReader buffReader=new bufferedReader(fileReader);boolean b=buffReader.ready版本();             系统输出打印(b) ;而(b){              系统输出打印((字符)buffReader.read读取();b=buffReader.ready版本();          }             系统输出打印(b) ;}

chevron_right

filter_none

输入:

f5d8e7fbd7c88ca4031978b7f9fb797d.png输出:

6e9ba6f17a9690a0f5d65a16287d6d95.png

程序2:假设文件“c:/演示.txt“

filter_none

edit close

play_arrow

link brightness_4 code

//Java程序来演示//BufferedReader ready()方法进口java.io语言*;公共类GFG{public static void main(String[]args){//读取流'演示.txt'//containing text“geeksforgeks”FileReader FileReader=new FileReader(“c:/演示.txt" );    //Convert fileReader to//bufferedReader bufferedReader buffReader=new bufferedReader(fileReader);boolean b=buffreader.ready版本();             系统输出打印(b) (二);当(b){系统输出打印((字符)buffReader.read读取();b=buffReader.ready版本();          }             系统输出打印(b) (二);}

chevron_right

filter_none

输入:

a8699c5f0440df0edbad0b8a9b452850.png输出:

22872a0a023e8044b5495e0fdfa9fa92.png

引用:https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html#就绪(

0a27209862bfee0b7927672aca2100ad.png

我的个人备忘箭头“拖放保存”推荐帖子:Java中的BufferedReader readLine()方法示例Java中的BufferedReader read()方法示例Java中的PushbackReader ready()方法示例Java中的StringReader ready()方法示例Java中的chararrayrreader ready()方法示例Java中的Reader Reader Reader()方法示例Java中的BufferedReader skip(long)Java中的方法及示例Java.io.BufferedReaderJava中的类朗朗.洛斯通比特Java中的()方法及实例lang.Long.numberofleading零Java中的()方法及实例Java.util.Collections集合java中的.disjoint()方法及示例lang.Long.trailingzero个数Java中的()方法及实例Java.lang.Short语言toString()Java中的方法及示例Javalang.Long.builcount语言Java中的()方法及实例朗朗·海斯托内比特(Java中的方法和示例

a9bb0bb8b3255415a9d85bd5a7dd15fe.pngpp_pankaj查看作者的贡献文章)

“如果你喜欢geeksforgeks并且愿意贡献,你也可以使用贡献.geeksforgeks.org或者把你的文章寄[email protected]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java的Thread的join方法是用来等待一个线程执行完成的,在该线程执行完成之前,当前线程会一直处于阻塞状态。join方法有两个重载方法: 1. join():表示当前线程等待被调用线程执行完成。 2. join(long millis):表示当前线程等待被调用线程指定的毫秒数,如果在这个时间内被调用线程没有执行完成,则当前线程会自动恢复执行。 可以使用join方法来保证cmd命令执行完成后再返回结果。具体实现可以参考以下代码: ```java Process p = Runtime.getRuntime().exec("cmd /c dir"); p.waitFor(); // 等待cmd命令执行完成 InputStream is = p.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } ``` 在该代码,使用Process类来执行cmd命令,并使用waitFor方法来等待命令执行完成。在命令执行完成后,通过InputStream获取输出结果并打印出来。 ### 回答2: 首先,我想纠正一下问题的一个错误。Java线程的`ready`方法是不存在的,我想您可能是想到的是`isAlive`方法。 `isAlive`方法用于判断一个线程是否处于活动状态(是否已启动且尚未终止)。当一个线程启动后,它的`run`方法开始执行,直到`run`方法执行完毕或线程被终止,该线程才算活动完成。在`run`方法执行期间,线程可以执行各种操作,例如输出到命令行窗口(cmd)。 在命令行窗口,输出的内容是逐行显示的,因此当一个线程正在输出内容时,命令行窗口可能尚未完全显示全部内容。这意味着在线程完成输出之前,使用`isAlive`方法获取该线程的状态可能会返回`false`。 要确保线程在输出完成后返回`false`,可以在主线程使用`join`方法等待线程执行完成。`join`方法会阻塞主线程,直到指定的线程完成为止。 以下是一个示例代码,展示了如何使用`join`方法等待线程执行完成: ```java public class Main { public static void main(String[] args) throws InterruptedException { Thread thread = new MyThread(); thread.start(); // 等待线程执行完成 thread.join(); System.out.println("线程执行完成"); } static class MyThread extends Thread { @Override public void run() { // 执行线程操作,例如输出内容到命令行窗口 for (int i = 0; i < 10; i++) { System.out.println("输出内容: " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } } ``` 在上述代码,`join`方法会阻塞主线程,直到`MyThread`线程执行完毕。只有在`MyThread`线程执行完成后,才会输出"线程执行完成",确保线程的全部输出已经显示在命令行窗口。 希望这个解答对您有所帮助! ### 回答3: Java的线程类并没有`rend()`方法。我猜你可能是想问`join()`方法。 在Java,如果一个线程调用了另一个线程的`join()`方法,那么调用`join()`方法的线程将会等待被调用线程执行完毕后再继续执行。如果线程在`join()`方法被调用前就已经执行完毕,那么`join()`方法将会立即返回。 在使用命令行Java编译器和执行器(如javac和java命令)时,主线程会等待程序的所有线程执行完毕后再退出。所以,在命令行执行Java程序时,主线程会等待所有线程的执行完毕,不管是否使用了`join()`方法。 因此,在命令行执行Java程序时,无论调用线程的`join()`方法是否完成,都会返回false。只有当一个线程调用`join()`方法且等待的线程执行完毕后,`join()`方法才会返回true。 无论是在命令行还是其他环境,`join()`方法用于协调不同线程的执行顺序,确保线程的有序执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值