io流-IO流 自定义readLine 无法读取下一行

问题描述

IO流 自定义readLine 无法读取下一行 5C
import java.io.*;
public class Demo
{
public static void main(String[] args) throws IOException
{
BufferedWriter bfw = new BufferedWriter(new FileWriter(""b.txt""));
bfw.write(""sdasdaadrn"");

    bfw.write(""1"");    bfw.close();    myreadline bfr = new myreadline(new FileReader(""b.txt""));    String s = null;    while((s = bfr.method()) != null)    {        sop(s);    }    bfr.myclose();}public static void sop(Object obj){    System.out.println(obj);}

}

class myreadline extends Reader
{
private FileReader r ;
myreadline(FileReader r)
{
this.r = r;
}

public String method() throws IOException{    StringBuilder sb = new StringBuilder();    int ch =0;    while((ch = r.read()) != -1)    {        if( ch == 'r')            continue;        if(ch == 'n')            return sb.toString();        else            sb.append((char)ch);    }    return null;}public void myclose()throws IOException{    r.close();}public void close()throws IOException{    r.close();}public int read(char[] c  int a  int b) throws IOException{    return r.read(c a  b);}

}

为什么只能读取一行呢???

解决方案

StringBuilder sb = new StringBuilder();
这个sb放在局部变量里,每次调用都不会再有之前读取的缓冲的字符了。

时间: 2024-09-13 09:42:00

io流-IO流 自定义readLine 无法读取下一行的相关文章

java-BufferedReader的readline 读取下一行怎么读取?

问题描述 BufferedReader的readline 读取下一行怎么读取? 如何控制读取下一行? for (int j = 1; (temp = br.readLine()) != null && !temp.equals(oldStr); j++) { buf = buf.append(temp); buf = buf.append(System.getProperty("line.separator")); } 解决方案 Java readLine()读取文件,

Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:登录注册IO版本案例(掌握) 要求,对着写一遍. cn.itcast.pojo User cn.itcast.dao UserDao cn.itcast.dao.impl UserDaoImpl(实现我不管)

JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律

JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这个,和我们的字符流基本上没有什么差别,我们来拷贝mp3,看例子 // 通过字节流的缓冲区拷贝图片 public static void copyMp3() { try { FileInputStream fi = new FileInputStream("audio.mp3"); Buff

JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇幅讲 一.文本复制 读写都说了,我们来看下其他的操作,我们首先来看复制 复制原理:其实就是将C盘下的文件数据存储到D盘的一个文件中 实现的步骤: 1.在D盘创建一个文件,用于存储文件中的数据 2.定义读取流和文件关联 3.通过不断的读写完成数据的存储 关闭资源 package com.lgl.hel

Java基础-21总结字符流,IO流编码问题,实用案例必做一遍

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:字符流(掌握)  // 字节流读取中文可能出现的小问题(所以用字符流输入输出中文) package cn.itcast_01; import java.io.FileInputStream; import ja

java IO之 序列流 集合对象Properties 打印流 流对象

序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末尾为止. 注意: 构造函数 SequenceInputStream(InputStream s1, InputStream s2) SequenceInputStream(InputStream s

Java编程中字节流与字符流IO操作示例_java

 IO流基本概念IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都是在IO包上 流按操作数据分为两种:字节流和字符流 流按流向分为:输入流,输出流. 字节流的抽象基类:InputStream,OutputStream 字符流的抽象基类:Reader,Writer 注:由这4个类派生出来的子类名称都是以其父类名作为子类名的后缀. 如:InputStream的子类:FileInputStream 如:Reader的子类FileReader 如创建一个Fi

java中IO操作 利用文件流 过滤流对文件进行读写操作

/* 两种基本的流是:输入流(Input Stream)和输出流(Output Stream) .可从中读出一系列字节的对象称为输入流. 而能向其中写入一系列字节的对象称为输出流. System.out.println   中的 out 是 PrintStream 类对象   System类的静态成员可以向 输出流写入数据 System.in.read()     in 是InputStream类的成员 可以从键盘等输入设备读取字节数据  利用FileInputStream   FileOutp

clear-C++IO类管理流状态的问题

问题描述 C++IO类管理流状态的问题 各位前辈,最近我读到Prime5中关于流状态的一段文字和代码感到很疑惑 "带参数的clear版本接受一个iostate值,表示流的新状态.为了复位单一的条件 状态位,我们首先应用rdstate读出当前条件状态,然后用位操作将所需位复位来生成新的状态.例如,下面代码将failbit和badbit复位,但eofbit保持不变. cin.clear(cin.rdstate()&~cin.failbit&~cin.badbit)";&qu