标签:输出 转换 处理 writer new Java 节点 输入
一、处理流
1、处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出方法,让程序员只需关心高级流的操作。
2、使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入输出功能,让节点流与底层的IO设备、文件交互。
3、实际识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的
使用处理流的优势:
(1)对开发人员来说,使用处理流进行输入/输出操作更简单
(2)使用处理流的执行效率更高
示例代码:
/**
* 处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/ 输出方法,让程序员只需关心高级流的操作。
* 使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能, 让节点流与底层的I/O设备、文件交互。
* 处理流和节点流的区别,只要流的构造器存在参数不是一个物理节点 ,而是己经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。
*
* @author sxj
*
*/
public class PrintStreamDemo {
public static void main(String[] args) throws IOException {
Writer writer = new FileWriter("E:/z/PrintStreamDemo.txt");
PrintWriter printWriter = new PrintWriter(writer);
String str = "处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/ 输出方法,让程序员只需关心高级流的操作。";
String str2 = "使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能, 让节点流与底层的I/O设备、文件交互。";
String str3 = "处理流和节点流的区别,只要流的构造器存在参数不是一个物理节点 ,而是己经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。";
printWriter.println(str);
printWriter.println(str2);
printWriter.println(str3);
/**
* 在使用处理流包装了底层节点流之后,关闭输入/输出流资源时,只要关闭最上层的处理流即可。
* 关闭最上层的处理流时,系统会自动关闭被该处理流包装的节点流。
*/
printWriter.close();
}
}
示例代码执行结果:
二、转换流
输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中InputStreamReader将字节输入流转换成字符输入流,OutputStreamWriter将字节输出流转换成字符输出流
示例代码:
/**
* 转换流 : InputStreamReader 和 OutputStreamWriter
* 用于将字节流转换成字符流
*
* @author sxj
*
*/
public class InputStreamReaderDemo {
public static void main(String[] args) {
try {
StringBuilder builder=new StringBuilder();
//读取文本文件
InputStream in=new FileInputStream("E:/Java课件/HelloWorld.java");
InputStreamReader inReader=new InputStreamReader(in);
char[] cs=new char[50];
int count=0;
while((count=inReader.read(cs, 0, cs.length))!=-1){
builder.append(cs, 0, count);
}
inReader.close();
//输出读取的内容
System.out.println(builder.toString());
//写文本文件
OutputStream out=new FileOutputStream("E:/Java课件/HelloWorld.java");
OutputStreamWriter writer=new OutputStreamWriter(out);
writer.write(builder.toString());
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
示例代码执行结果:
标签:输出,转换,处理,writer,new,Java,节点,输入 来源: https://blog.csdn.net/weixin_42530700/article/details/93967409
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。