Java_18 输入/输出流
来源:互联网 发布:java解析xlsx文件 编辑:程序博客网 时间:2024/06/02 05:38
1.流概念
流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口等。源可以是文件、网络、压缩包或者其他数据源。输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传递到目的地,输出流的目标是文件、网络、压缩包、控制台和其他数据输出目标所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;所有输出流都是抽象类OutputStream(字节输出流)或抽象类Write(字符输出流)的子类
2.输入流
InputStream类(字节输入流)的常用方法read() 从输入流中读取数据的下一个字节。返回0~225范围内的int字节值。如果已经到达流末尾没有可用字节,则返回值-1read(byte[] b) 从输入流中读入一定长度的字节,并以整数的形式返回字节数mark(int readlimit) 在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数reset() 将输入指针返回到当前所做的标记处skip(long n) 跳过输入流上的n个字节并返回实际跳过的字节数markSupported() 如果当前流支持mark()/reset()操作就返回trueclose() 关闭此输入并释放与该流关联的所有系统资源并不是所有的InputStream类的子类都支持InputStream中定义的所有方法,如skip()、mark()、reset()等,这些方法只对某些子类有用Reader类(字符输入流)并不是InputStream类的替换者,只是在处理字符串时简化了编程,Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类
3.输出流
OutputStream类(字节输出流)是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类OutputStream类的常用方法write(int b) 将指定的字节写入此输出流write(byte[] b) 将b.length个字节从指定的byte数组写入此输入流write(byte[] b,int off,int len) 将指定byte数组中从偏移量off开始的len个字节写入此输出流flush() 彻底完成输出并清空缓存区close() 关闭输出流Writer类(字符输出流)是字符输出流的抽象类,所有字符输出类的实现都是它的子类
4.范例
//显示指定类型的文件package File;import java.io.File;public class FileDemo1 { public static void main(String[] args) { File file = new File("e:/"); listFile(file); } public static void listFile(File file){ //判断是否是文件夹 if(file.isDirectory()){ File [] f = file.listFiles(); for (File f2 : f) { if(f2.isDirectory()){ listFile(f2); }else{ //正则表达式 String name = f2.getName(); String regex = "^.{1,}\\.txt$"; if(name.matches(regex)) System.out.println(f2.getName()); } } }else{ System.out.println(file.getAbsolutePath()); String name1 = file.getName(); String regex = "^.{1,}//.txt$"; if(name1.matches(regex)) System.out.println(file.getName()); } }}
protected void do_replaceButton_actionPerformed(ActionEvent e){ String before = beforeTextField.getText(); //获得替换前字符串 //省略校验代码 String after = afterTextField.getText(); //获得替换后字符串 //省略检验代码 FileReader reader = null; //创建文件读流 FileWriter writer = null; //创建文件写流 StringBuilder sb = new StringBuilder(); //使用StringBuilder对象保存文件 int flag = 0; //声明文件读入标识 char[] temp = new char[1024]; //使用字符数组读入文件 try{ reader = new FileReader(textFile); //使用选择的文件创建读流 while ((flag=reader.read(temp))!=-1){ sb.append(temp); //读入文件中的内容 } String content = sb.toString().replace(befor, after);//替换字符串 writer = new FileWriter(textFied); //创建文件写流 writer.write(content); //将替换后的字符串写入到文件 }catch(FileNotFoundException e1){ e1.printStackTrace(); }catch(IOException e1){ e1.printStackTrace(); }finally{ //释放资源 } JOptionPane.showMessageDialog(this, "字符串替换成功!"); return; }
阅读全文
0 0
- Java_18 输入/输出流
- 输出流输入流
- 输入流输出流
- 输入流&输出流
- 输入流,输出流
- Chap06: 输入/输出流
- C++输入/输出流
- C++输入/输出流
- PHP 输入/输出流
- 输入、输出流部分内容
- C++输入/输出流
- 输入\输出流
- 字节输入/输出流
- JAVA输入\输出流
- 输入、输出流
- Java输入/输出流
- c++输出输入流
- Java 输入/输出流
- 2017.8.18 总结
- ContentProvider 源码分析---之三
- edittext文本输入控件
- BZOJ2124: 等差子序列
- 人工智能学习轨迹
- Java_18 输入/输出流
- POJ
- hdu 1796 How many integers can you find(容斥原理)
- Unity入门操作_Input_005
- jzoj 3427 归途与征程
- jquery table标签切换
- Number of Battlefields UVA
- spring事务及原理模拟
- Java多线程基础