文档章节

自定义buffered缓存流

chenruibing
 chenruibing
发布于 2015/06/14 16:16
字数 373
阅读 15
收藏 0

自定义字符缓存流

import java.io.*;
class mybuffered
{
	private FileReader fr = null;
	mybuffered(FileReader fr)
	{
		this.fr = fr ;
	}
	public String mynewline()throws IOException
	{
		StringBuilder sb = new StringBuilder();
		int demo = 0;
		while ((demo = fr.read())!=-1)  //多次返回之后指针还是会自动改变的
		{
			if (demo == '\r')           //int 和 char 之间是会自动匹配的
				continue;
			if (demo == '\n')
				return sb.toString();
			sb.append((char)demo);
		}
		if (sb.length()!=0)
		{
			return sb.toString();
		}
		return null ;
		
	}
	public void myclose()throws IOException
	{
		fr.close();
	}
}
public class anli
{
	public static void main (String[] args)throws IOException
	{
		FileReader fr = new FileReader("demo.txt");
		mybuffered mf = new mybuffered(fr);
		String str = null;
		while ((str = mf.mynewline())!=null)
		{
			sop(str);
		}
		mf.myclose();
	}
	public static void sop (Object obj)
	{
		System.out.println(obj);
	}
}
自定义字节缓存流

import java.io.*;
class mybufferedinputstream
{
	private FileInputStream in ;
	private int pos = 0,count = 0;  //在java中,类中可以初始化,这点和C++不一样
	private byte[] bt = new byte[1024];
	mybufferedinputstream(FileInputStream in)
	{
		this.in = in ;
	}
	public void myclose()throws IOException //只需要在这里抛出异常就可以了
	{                 //这里用的是public,因为是公共部分给人调用的。。。
		in.close();   //类中不可以调用自己类中的函数,除非是定义为静态的,就好像是主函数那样子
	}
	public int myread ()throws IOException  //返回值是byte,而返回类型确实int,其中的含义
	{
		if (count==0)
		{
			count = in.read(bt);
			if (count < 0)
			{
				return -1;
			}
			pos = 0;  //记得把pos恢复为0
			byte term = bt[pos];
			count--;
			pos++;
			return term&255;   //255的含义
		}
		else if (count > 0)
		{
			byte term = bt[pos];  //存放的是字节
			count--;
			pos++;
			return term&255;
		}
		return -1;
	}
}
public class anli
{
	public static void main (String[] args)throws IOException
	{
		FileInputStream fi = new FileInputStream ("anli.java");
		mybufferedinputstream ms = new mybufferedinputstream(fi);
		int term = 0;
		while ((term = ms.myread())!=-1)
		{
			sop((char)term);
		}
	}
	public static void sop(Object obj)
	{
		System.out.print(obj);
	}
}



© 著作权归作者所有

共有 人打赏支持
chenruibing
粉丝 12
博文 203
码字总数 109101
作品 0
潮州
私信 提问
关于cout输出缓冲区问题(转载和自己见解)

The endl manipulator produces a newline character, exactly as the insertion of 'n' does; but it also has an additional behavior: the stream's buffer (if any) is flushed, which m......

李老三
2016/09/17
11
0
java 输出流需要明白的几点细节

输出流必须要注意的一些细节。 OutputStream---字节输出流 常用的实现类: FileOutputStream---字节文件输出流,write数据后立刻写到文件中去 BufferedOutputStream---带缓冲区的字节输出流,...

一不留神
2016/08/05
120
0
音乐在线播放Demo

本事例的界面很简单,一个按钮用来开始缓冲音乐,一个进度条用来显示音乐的缓冲进度和播放进度,后面是一个文本用来显示音乐的播放时间,还有一个图片按钮用来播放和暂停音乐。 在main.xml中...

长平狐
2012/08/14
645
1
音乐在线播放Demo

本事例的界面很简单,一个按钮用来开始缓冲音乐,一个进度条用来显示音乐的缓冲进度和播放进度,后面是一个文本用来显示音乐的播放时间,还有一个图片按钮用来播放和暂停音乐。 在main.xml中...

长平狐
2012/08/21
391
0
音乐在线播放Demo

本事例的界面很简单,一个按钮用来开始缓冲音乐,一个进度条用来显示音乐的缓冲进度和播放进度,后面是一个文本用来显示音乐的播放时间,还有一个图片按钮用来播放和暂停音乐。 在main.xml中...

长平狐
2012/08/09
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
11分钟前
0
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
2
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
2
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
2
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部