JavaIO的简单代码实例和展示

简介: JavaIO的简单代码实例和展示

IO流实现文件的拷贝 几种不同的方法:

复制代码
package com.wxisme.TestIO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**

  • 字节流拷贝文本文件
  • @author wxisme
    /
    public class StreamOne {
    public static void main(String[] args) {

     String path = "E:" + File.separator + "test.txt";
     File file = new File(path);
     try {
         file.createNewFile();
     } catch (IOException e) {
         System.out.println("创建文件失败");
         e.printStackTrace();
     }
     InputStream is = null;
         is = new FileInputStream(file);
     } catch (FileNotFoundException e1) {
         e1.printStackTrace();
     String fileName = "E:" + File.separator + "Bullet.java";
     OutputStream os = null;
         os = new FileOutputStream(fileName,true);
     byte[] b = new byte[10];
     int len = 0;
         while((len = is.read(b)) != -1) {
             os.write(b, 0, len);
         }
         os.flush();//强制刷出缓冲区
    
     }finally {
         try {
             os.close();
         } catch (IOException e) {
             e.printStackTrace();
             is.close();
    
     System.exit(0);
    

    }
    }
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.Reader;
    import java.io.Writer;

  • 字节流拷贝文件
    public class StreamTwo {
     String name = "E:" + File.separator + "Bullet.java";
     Reader r = null;
         r = new FileReader(name);
     } catch (FileNotFoundException e) {
         System.out.println("创建字符输入流失败");
     Writer w = null;
         w = new FileWriter(path);
         System.out.println("创建字符输出流失败");
     char[] cbuf = new char[10];
         while((len = r.read(cbuf)) != -1) {
             //w.write(cbuf);
             w.write(cbuf, 0, len);
         w.flush();//强制刷出
             w.close();
             r.close();
    
    import java.io.PrintStream;
    import java.util.Scanner;
  • 重定向输入输出 实现文件的拷贝
    public class Reset {
    public static void main(String[] args) throws FileNotFoundException {
     String src = "E:" + File.separator + "Bullet.java";
     FileInputStream fis = new FileInputStream(src);
     System.setIn(fis);
     PrintStream ps = new PrintStream(new FileOutputStream(path));
     System.setOut(ps);
     Scanner scan = new Scanner(System.in);
     scan.useDelimiter("\n");//以换行符为分隔符
     while(scan.hasNext()) {
         System.out.println(scan.next());
    
    //代码效果参考:http://www.zidongmutanji.com/zsjx/443913.html

处理流PrintStrream PrintWriter
import java.io.PrintWriter;

  • 使用处理流printStream printWriter
    public class StreamFour {
    public static void main(String[] args) throws IOException {
     PrintStream ps = new PrintStream(new FileOutputStream(path,true));
     ps.print("PrintStream");
     PrintWriter pw = new PrintWriter(new FileWriter(path));
     pw.print("PrintWriter");
     pw.close();
     ps.close();
    
    读取单个字符
    import java.io.StringReader;
  • 读取单个字符
    public class ReaderOne {
     String str = scan.next();
     Reader r = new StringReader(str);
     while(r.read(cbuf,0,1) != -1) {
         char c = cbuf[0];
         System.out.println(c);
     r.close();
    
    转换流
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
  • 使用转换流
    public class StreamThree {
     /*
      * 输入流底层使用字节流,然后使用转换流把字节流转换成字符流,并且指定解码字符集。
      * 然后把字符流包装成缓冲流,按行读取文件。
      * 乱码问题的两个主要原因:
      *    1. 解码字符集与编码字符集不统一
      *    2. 读取字节缺少,长度丢失。
      */
     String path = "E:" + File.separator + "Bullet.java";
     BufferedReader br = new BufferedReader(
             new InputStreamReader(
                     new FileInputStream(
                             new File(path)),"utf-8"));
     String str;
     while((str = br.readLine()) != null) {
         System.out.println(str);
     br.close();
    
    //代码效果参考:http://www.zidongmutanji.com/bxxx/125984.html

关闭文件的工具方法的两种写法:
import java.io.Closeable;

  • 关闭文件资源的工具类 有两种实现方法 可以实现一次关闭多个文件,先打开的文件后关闭
    public class CloseAll {

    /**

    • 使用多态 可变参数 可以有多个形参以数组的形式 可变形参必须在所有参数的最后
    • @param io
      */
      public static void closeAll1(Closeable ... io) {
      for(Closeable temp : io) {
       if(temp != null) {
           try {
               temp.close();
           } catch (IOException e) {
               System.out.println("文件关闭失败");
               e.printStackTrace();
           }
      
    • 泛型方法 使用泛型方法和可变参数
      public static void closeAll2(Closeable ... io) {
相关文章
|
2月前
|
C++
【C++】bind绑定包装器全解(代码演示,例题演示)
【C++】bind绑定包装器全解(代码演示,例题演示)
|
9月前
|
存储 数据可视化 Java
C++的各种用法展示(二)
C++的各种用法展示(二)
57 0
|
8天前
|
Java
java8 常用代码具体展示
java8 常用代码具体展示
|
8天前
|
算法 安全 Java
Java 代码优化方法和展示例子
Java 代码优化方法和展示例子
18 0
|
2月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
|
9月前
|
存储 并行计算 vr&ar
C++的各种用法展示(一)
C++的各种用法展示(一)
45 0
|
Java Maven
Java 旋转、翻转图片工具类(附代码) | Java工具类
Java 旋转、翻转图片工具类(附代码) | Java工具类
Java 旋转、翻转图片工具类(附代码) | Java工具类
|
12月前
|
调度
异步方法 理解(demo附代码)
异步方法 理解(demo附代码)
108 0
|
消息中间件 JavaScript 小程序
接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
|
安全 Java 编译器
❤️【Java】图文深入解析 继承、多态、接口(超详细,小白一看就会)❤️
看完本章文,你会学习到 包,继承,多态思想,抽象类,接口,具体看目录即可。
200 0
❤️【Java】图文深入解析 继承、多态、接口(超详细,小白一看就会)❤️