Java IO流
IO的分类
按照数据类型分为:
字节流
字符流
按照流向分为:
输入流
输出流
字符流
输入流Reader
Reader reader = new FileReader(file)); int i; // 用于存储读取的字符
char[] chars=new char[2]; while ((i=reader.read()) != -1) { // 读取一个字符,-1 表示文件末尾 System.out.print((char) i); // 将字符转换为 char 并打印 }
输出流Writer
File file = new File(path); Writer writer=null; try { writer = new FileWriter(file);//覆写 //writer= new FileWriter(file, true);//追加写入 char[] c = {'a', 'b', 'c'}; writer.write("hello\r\n");//写入字符串 writer.write(c, 0, 3);//写入字符的一部分,这里表示从0开始,取长度为3 writer.write("test\r\n");//使用\r\n来换行 //write.flush();刷新缓冲区 }catch (IOException e){ e.printStackTrace(); }finally { try { if (writer != null) { writer.close();//刷新缓冲区,释放资源,流对象不能够再使用 } }catch (IOException e) { e.printStackTrace(); } }
字节流
字节输入流InputStream
InputStream in = null; File file = new File(path); try { //创建字符输入流的对象 in = new FileInputStream(file); //创建一个字节的数组 byte[] bs = new byte[1024]; int len = -1; while((len = in.read(bs)) != -1){ String s = new String(bs, 0 , len); System.out.print(s);//读取的内容 } }catch (Exception e) { e.printStackTrace(); }finally { try { if(in!=null) { in.close();//释放资源 } }catch (IOException e) { e.printStackTrace(); } }
字节输入流OutputStream
//创建OutputStream流对象 OutputStream outputStream = null; File file = new File(path); try { outputStream = new FileOutputStream(file); //写入对应ASCII码对应的内容 //outputStream.write(33); byte[] bs = {'a','b','c'}; //outputStream.write(bs); //写入bs中的内容 outputStream.write(bs, 0, 2); }catch (Exception e) { e.printStackTrace(); }finally { try { if(outputStream!=null) { outputStream.close();//释放流资源 } }catch (IOException e) { e.printStackTrace(); } }

浙公网安备 33010602011771号