outputstreamwriter java中的OutputStreamWriter用法
老铁们,大家好,相信还有很多朋友对于outputstreamwriter和java中的OutputStreamWriter用法的相关问题不太懂,没关系,今天就由我来为大家分享分享outputstreamwriter以及java中的OutputStreamWriter用法的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
...与InputStreamReader OutputStreamWriter 用法
BufferedReader:它是带有缓存的字符流,用它可以包装fileReader用来读取文件,它有一个方法不是一般的爽,那就是readline()方法,可以一行一行的读。
BufferedWriter:它也是带有缓存的字符流,用它可以包装filewriter用来写东西到文件里,它也有一个方法很好用,那就是writeline()方法,可以一行一行的写。
InputStreamReader和OutputStreamWriter都是字符转换流,也都是用来操作文件的,其实流你只要掌握住规律就行了
关于FileWriter 和 OutputStreamWriter
FileReader和FileWriter分别是InputStreamReader和outputStreamWriter的子类,他们的write和read方法其实是同一个方法。所以没有什么不一样。缓存的话可以考虑使用BufferedReader和BufferedWriter这个是带有缓存的封装。
FileReader,FileWriter是读字符的,1个字符是2个字节,16位。
OutputStream,InputStream是读字节的,1个字节是8位。
要是读汉字,一个汉字是2个字节,用InputStream读就把汉字活生生的拆一半了,自己可以写程序验证下。
字符流主要读文本比较效率。字节流主要读二进制文件,图片就是为了防止出现读取的单位放大,出现无法还原本程序的目的。
java中的OutputStreamWriter用法
InputStreamReader将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码;
例如:
public static void transReadNoBuf() throws IOException{
/**
*没有缓冲区,只能使用read()方法。
*/
//读取字节流
// InputStream in= System.in;//读取键盘的输入。
InputStream in= new FileInputStream("D:\\demo.txt");//读取文件的数据。
//将字节流向字符流的转换。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节.
InputStreamReader isr= new InputStreamReader(in);//读取
// InputStreamReader isr= new InputStreamReader(new FileInputStream("D:\\demo.txt"));//综合到一句。
char []cha= new char[1024];
int len= isr.read(cha);
System.out.println(new String(cha,0,len));
isr.close();
}
public static void transReadByBuf() throws IOException{
/**
*使用缓冲区可以使用缓冲区对象的 read()和 readLine()方法。
*/
//读取字节流
// InputStream in= System.in;//读取键盘上的数据
InputStream in= new FileInputStream("D:\\demo.txt");//读取文件上的数据。
//将字节流向字符流的转换。
InputStreamReader isr= new InputStreamReader(in);//读取
//创建字符流缓冲区
BufferedReader bufr= new BufferedReader(isr);//缓冲
// BufferedReader bufr= new BufferedReader(new InputStreamReader(new FileInputStream("D:\\demo.txt")));可以综合到一句。
/* int ch=0;
ch= bufr.read();
System.out.println((char)ch);*/
String line= null;
while((line= bufr.readLine())!=null){
System.out.println(line);
}
isr.close();
}
java中OutputStream如何追加内容
OutputStream是所有字节型输出流的超类。这个类是抽象类,不能实例化。也就是说,我们一般用来做引用。
OuputStream os= new FileOutputStream("d:/aaa.txt");
既然是抽象超类,就是将所有字节输出流的公用特征的抽象。
其次,获取文件名字不是流对象需要处理的问题,所以不会提供方法获取文件名字。文件有关的操作要通过File对象来操作。
再有,你都制作出了一个指向文件准备进行写操作的流对象了,你怎么还要通过流对象获取文件名字的信息呢?你都在创建流对象的时候给出了这个信息了。所以流对象不提供获取的方法也就自然有道理了。
沈阳冠尔Java培训友情提供!
感谢您花时间阅读本文!我们希望通过对outputstreamwriter的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。