黑马程序员--IO流操作(1)

来源:互联网 发布:微信公众平台网页源码 编辑:程序博客网 时间:2024/05/20 20:21
------- android培训、java培训、期待与您交流! ----------

1.字符流:


 1.1  Reader类   


1.2  Writer类




1.3 使用字符流对文件进行复制:

public class CopyText {public static void main(String[] args) {// TODO Auto-generated method stubFileReader fr = null;//声明字符流输入与输出对象FileWriter fw = null;try {fr = new FileReader("D:\\unintall.log");fw = new FileWriter("D:\\3.txt");char[] buf = new char[1024];int len = 0;while ((len = fr.read(buf)) != -1) {//读取和写入数据fw.write(buf, 0, len);}} catch (Exception e) {// TODO: handle exception} finally {if (fw != null) {try {fw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (fr != null) {try {fr.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}

1.4 使用字符流缓冲区,提高对数据的读写效率:

public class CopyText2 {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubBufferedReader in = new BufferedReader(new FileReader("D:\\1.txt"));BufferedWriter out = new BufferedWriter(new FileWriter("D:\\2.txt"));String buf = null;while((buf = in.readLine())!=null){out.write(buf);out.newLine();out.flush();}in.close();out.close();}}

2.字节流


2.1   InputStream


2. 2   OutputStream


2.3  使用字节流对文件进行复制:

                FileInputStream fis = new FileInputStream("E:\\2.rar");FileOutputStream fos = new FileOutputStream("E:\\1.rar");byte[] buf = new byte[1024];int len = 0;while((len=fis.read(buf))!=-1){fos.write(buf, 0, len);}fis.close();fos.close();

3.流转换

3.1  InputStreamReader类


字节流转为字符流:
InputStream in = System.in;InputStreamReader isr = new InputStreamReader(in);BufferedReader br = new BufferedReader(isr);//加字符缓冲区
可以简写如下:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

3.2  OutStreamWriter类


字符流转为字节流:
                OutputStream out = System.out;OutputStreamWriter osw = new OutputStreamWriter(out);BufferedWriter bw = new BufferedWriter(osw);

简写:
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

所以从键盘输入数据然后从控制台输出,高效的话可以如下操作:

                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));String str = null;while((str=bufr.readLine())!=null){bufw.write(str.toUpperCase());bufw.newLine();bufw.flush();}bufr.close();bufw.close();





0 0
原创粉丝点击