inputstream 输入流 从外界像内存中输入数据
outputstrteam 从内存中向外界输出数据。
字符流:
Reader --继承自Reader的流都是用于向程序中输入数据,且数据的单位为字符(16 bit);
类 FileReader继承 InputStreamReader
类 StringReader继承 Reader
类 CharArrayReader 继承Reader
利用FileReader类读取纯文本文件”text.txt” 。 public static void main(String args[]) throws IOException{ char c[ ]=new char[500]; //创建可容纳500个字符的数组 FileReader r=new FileReader("c:\\7\\test.txt"); //创建对象r int num=r.read(c); //将数据读入字符数组c内,并返回读取的字符数 String str=new String(c,0,num); //将字符串数组转换成字符串 System.out.println("读取的字符个数为:"+num+",其内容如下:"); System.out.println(str); }
Writer --输出数据到相应的输出流(输出的目标),写入到文件中
flush()--刷空所有输出流,并输出所有被缓存的字节到相应的输出流。
类 FileWriter 继承 OutputStreamWriter
类 StringWriter 继承 Writer
类 CharArrayWriter 继承 Writer
利用FileWriter类将字符数组与字符串写到文件里。 public static void main(String args[]) throws IOException{ FileWriter fw=new FileWriter("c:\\7\\test2.txt"); char c[ ]={‘H‘,‘e‘,‘l‘,‘l‘,‘o‘,‘\r‘,‘\n‘}; String str="欢迎使用Java!"; fw.write(c); //将字符数组写到文件里 fw.write(str); //将字符串写到文件里 fw.close(); }
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)) String input = stdIn.readLine( ); 从文件中读取一行字符串: BufferedReader fileIn = new BufferedReader(new FileReader(filename)); String line = fileIn.readLine(); while (line != null) { line = fileIn.readLine( ); }
BufferedInputStream extends FilterInputStream 为读取的数据申请一份可用的缓冲区,用于提高输入处理的效率。try
{
FileInputStream fis = new FileInputStream("txt/a.txt");
BufferedInputStream bis=new BufferedInputStream(fis);
FileOutputStream fos=new FileOutputStream("txt/d.txt");
BufferedOutputStream bos=new BufferedOutputStream(fos);
byte[ ] buffer = new byte[2048];
// int byteLength = fis.read(buffer , 0 , 2048);
// String str = new String(buffer , 0 , byteLength);
// System.out.println(str);
int len;
while((len=bis.read(buffer))>0){
bos.write(buffer,0,len);
System.out.println(new String (buffer,"gbk"));
}
bos.close();
fos.close();
bis.close();
fis.close( );
}catch(IOException ex){
}