黑马程序员技术交流社区
标题:
BufferedReader 和BufferedWriter的问题
[打印本页]
作者:
樊占江
时间:
2012-7-31 15:57
标题:
BufferedReader 和BufferedWriter的问题
今天联系代码,突然想在bufferedReader里面添加一个计算器功能,但是没有想到解决方法,求助!!
作者:
119609336
时间:
2012-7-31 16:08
看不懂你的问题
作者:
金龙
时间:
2012-7-31 16:44
你是想把文件里读取出来的数字给进行运算一下吗?数字也属于文本,你可以用字符流,每次读一个,然后通过Integer的parseInt方法转换一下,再给运算……
作者:
王志明
时间:
2012-7-31 16:54
可以的,你可以使用装饰设计模式:
继承BufferedReader,对read方法进行包装,再计数
不知道楼主是不是这样的需求。。
public class MyBufferedReader extends BufferedReader {
private int count;
public int read() {
int ch = super.reade();
if (ch != -1) {
count++;
}
}
}
作者:
赵俊杰
时间:
2012-7-31 17:22
根据您说的,偶随便写了个,求反馈。
import java.io.*;
public class test
{
public static void main(String args[]) throws IOException
{
File fromFile=new File("c:/a.txt");
FileWriter fw=new FileWriter(fromFile);
fw.write("老婆,我是胡涛涛,现被绑,速划帐救命,我银行卡帐号:13838602879,密码:874377,划往:018340179187234");
fw.close();
File toFile=new File("c:/b.txt");
BufferedReader bin=new BufferedReader(new InputStreamReader(new FileInputStream(fromFile)));
BufferedWriter bout=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(toFile)));
String temp=null;
while((temp=bin.readLine())!=null)
{
temp=temp.replaceAll("[0-9]", "*");
bout.write(temp);
}
bout.flush();
bin.close();
bout.close();
System.out.println("OK\n请到C盘下查看和比较a.txt和b.txt两个文件的不同之处");
}
}
作者:
魏-玉-彪
时间:
2012-7-31 17:32
在缓冲字符读取流里加计算器?bufferedReader 只是一个字符缓冲区,为了提高字符读取效率,这样做没有什么意义吧?
作者:
陈红建
时间:
2012-7-31 17:59
本帖最后由 陈红建 于 2012-7-31 18:00 编辑
我猜你就是i想对数据加密吧哈哈哈
class Test9
{
//字节流的方式不仅可以拷贝普通文件,还可以拷贝任意的二进制文件例如exe文件
public static void main(String[] args) throws IOException
{
//FileCopy(要被拷贝的文件,拷贝的目的地)
long start=System.currentTimeMillis();
FileCopyBuffer("c:\\11.exe","c:\\1.exe");
FileCopyBuffer("c:\\2.txt","c:\\1.txt");
long end=System.currentTimeMillis();
System.out.println((end-start)+"毫秒");
}
//字节流缓冲区高效拷贝
public static void FileCopyBuffer(String name,String name2) throws IOException
{
BufferedInputStream fr= new BufferedInputStream(new FileInputStream(name));
BufferedOutputStream fw= new BufferedOutputStream(new FileOutputStream(name2));
int byte1=0;
while((byte1=fr.read())!=-1)
{
<FONT color=red>fw.write(byte1^0xff1cda);//对写入的流进行运算可以实现加密</FONT> }
fr.close();
fw.close();
}
}
复制代码
作者:
王峰
时间:
2012-7-31 18:01
bufferedReader 是一个字符缓冲区,楼主的意思是不是这样啊、
private int temp;
public int read() {
int ch = super.reade();
if (ch != -1) {
temp++;
}
}
作者:
樊占江
时间:
2012-8-1 00:43
没想到我的一个问题确得到这么多答案,谢谢!
我今天帮别人做一道题,突然想给加个功能:比如你在bufferedReader输入俩个数字,然后让它们自动计算。
我想到的方法是读存 然后再计算。现在我想要更好的更有效率的方法。
我不要代码,只想有个大概思路。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2