当前位置: 技术问答>java相关
关于过滤流的问题
来源: 互联网 发布时间:2015-04-22
本文导语: text.txt="the d" 我想用下面的程序来把方括号过滤,并以 "t h e d d d d"的形式输出。但方括号却没过滤,为什么? import java.io.*; public class GetCharOnly{ public static void main(String args[]){ try { FileInputStream...
text.txt="the d"
我想用下面的程序来把方括号过滤,并以
"t
h
e
d
d
d
d"的形式输出。但方括号却没过滤,为什么?
import java.io.*;
public class GetCharOnly{
public static void main(String args[]){
try {
FileInputStream fin =new FileInputStream("text.txt");
PushbackInputStream pin=new PushbackInputStream(fin);
int n;
do {
n=pin.read() ;
}
while (n!=-1&&!Character.isLetter((char)n)) ;
pin.unread(n);
while ((n=pin.read() )!=-1){
if (n!=' '){
System.out.println((char)n);
}
else{
System.out.println();
}
}
}
catch (FileNotFoundException e){
System.out.println("error is :"+e);
}
catch (IOException e){
System.out.println("error is :"+e);
}
}
}
我想用下面的程序来把方括号过滤,并以
"t
h
e
d
d
d
d"的形式输出。但方括号却没过滤,为什么?
import java.io.*;
public class GetCharOnly{
public static void main(String args[]){
try {
FileInputStream fin =new FileInputStream("text.txt");
PushbackInputStream pin=new PushbackInputStream(fin);
int n;
do {
n=pin.read() ;
}
while (n!=-1&&!Character.isLetter((char)n)) ;
pin.unread(n);
while ((n=pin.read() )!=-1){
if (n!=' '){
System.out.println((char)n);
}
else{
System.out.println();
}
}
}
catch (FileNotFoundException e){
System.out.println("error is :"+e);
}
catch (IOException e){
System.out.println("error is :"+e);
}
}
}
|
宝宝猫说的对,而且你的用法也不对,phshback的意思是预读一个字符,如果不符合要求,回退,下一次读的还是这个字符。看来不能满足你的要求,而且看不出你这么做有什么好处。