让我们来看看字符输出流

石家庄java培训 2023年02月08日 16:07:38

      1.字符输入流

1.java.io.Reader:字符输入流,抽象类 具体的子类:字节输入流通向字符输入流的桥梁:InputStreamReader 2.字符缓冲输入流: 构造方法: publicInputStreamReader(InputStream in):使用默认字符集进行解码 publicInputStreamReader(InputStream in,String charsetName)throws UnsupportedEncodingException:使用指定的字符集解码 读的方式: publicintread()throws IOException:一次读取一个字符 publicintread(char[] cbuf)throws IOException:一次读取一个字符数组 3.public class ReaderDemo{ publicstaticvoidmian(String[] args)throws Exception{ //创建字符缓冲输入流对象 InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt")); //一次读取一个字符数组char[] chs = newchar[1024]; int len = 0; while((len=isr.read(chs))!=-1){ sout(new String(chs,0,len)); } isr.close(); } }

      2.字符输出流

1.java.io.Writer:字符输出流,抽象类 具体的子类:OutputStreamWriter:字符转换输出流 2.构造方法: publicOutputStreamWriter(OutputStream out):使用平台默认字符集编码 publicOutputStreamWriter(OutputStream out,String charsetName):使用指定的字符集进行编码 写的功能: publicvoidwrite(char[] cbuf)throws IOException:写一个字符数组 publicabstractvoidwrite(char[] cbuf,int off,int len)throws IOException:从指定位置开始写入一部分字符数组 publicvoidwrite(String str)throws IOExceotion:写入字符串 publicvoidwrite(String str,int off,int len)throws IOException:写字符串的一部分 publicvoidwrite(int c)throws IOException:写一个字符 3.代码实现: public class WriteDemo{ publicstaticvoidmain(String[] args) throw Exception{ //创建字符缓冲输出流对象 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("osw.txt")); //写数据 osw.write("hello,字符流我来了"); //写一个字符 osw.write(97); //写一个字符数组char[] chs = {"高","圆","圆"}; osw.write(chs); //关闭前刷新流 osw.flush(); osw.close(); } }

      3.使用字符转换输入流和转换输出流来复制一个文本

1.字符流里直接操作文件--->字符转换流的便捷类 直接子类:publicFileReader(String fileName)throws FileNotFoundException publicFileWriter(String fileName)throws IOException 2.代码实现: public class CopyFileTest{ publicstaticvoidmain(String[] args)throws Exception{ method1("BufferedOutputStreamDemo.java","D:\\EE_2113\\day27_pm\\code\\copy4.java") ; method2("BufferedOutputStreamDemo.java","D:\\EE_2113\\day27_pm\\code\\copy2.java") ; } //使用字符转换流的便捷类来直接操作文件---一次读取一个字符数组privatestaticvoidmethod1(String sourch,String dest)throws Exception{ //创建FileReader类对象 FileReader fr = new FileReader(source); //创建FileWriter类对象 FileWriter fw = new FileWriter(dest); //一次读取一个字符数组char[] chs = newchar[1024]; int len = 0; while((len = fr.read(chs))!=-1){ fw.write(chs,0,len); } fw.close(); fr.close(); } //使用字符转换输入流一次读取一个字符数组privatestaticvoidmethod2(String source,String dest)throws Exception{ InputStreamReader isr = new InptStreamReader(new FileInputStream(source)); OutputStreamWriter osw = new OutputStreamReader(new FileOutputStream(dest)); char[] chs = newchar[1024]; int len = 0 ; while((len=isr.read(chs))!= -1){ osw.write(chs,0,len); } osw.close(); isr.close(); } }

      以上就是动力节点小编介绍的"让我们来看看字符输出流",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您务。