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) {
相关文章
|
3月前
|
算法 Java 开发者
你的Java代码还可以这样写:JavaIO的简单代码实例和展示
在编程世界中,Java无疑是璀璨的明星。本文通过两个示例介绍抽象类与接口的魅力:首先,通过抽象类`Shape`及其子类`Circle`和`Rectangle`展示多态性;接着,通过接口`PerimeterCalculator`为形状类添加周长计算功能,展现了接口的灵活性。掌握这两者将助你在Java编程中更进一步,应对复杂项目游刃有余。
50 0
|
4月前
|
设计模式 Java 数据库连接
Java面试题:简述工厂模式的种类及其应用场景,你能举个例子吗?
Java面试题:简述工厂模式的种类及其应用场景,你能举个例子吗?
34 0
|
5月前
|
Java
java8 常用代码具体展示
java8 常用代码具体展示
23 0
|
5月前
|
算法 安全 Java
Java 代码优化方法和展示例子
Java 代码优化方法和展示例子
41 0
|
6月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
|
存储 安全 Java
Java-反射(有图有例子,清晰易懂)
反射:框架设计的灵魂 1、概念 Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。
Java-反射(有图有例子,清晰易懂)
9张图,32个案例带你轻松玩转Java stream(上)
9张图,32个案例带你轻松玩转Java stream
154 0
9张图,32个案例带你轻松玩转Java stream(上)
9张图,32个案例带你轻松玩转Java stream(下)
9张图,32个案例带你轻松玩转Java stream
140 0
9张图,32个案例带你轻松玩转Java stream(下)
|
设计模式 Java Unix
java关于File类源码的详细分析 附代码(全)
添加链接描述磁驱动分割符中,在unix中使用/表示,在window中使用\\\查看其源码,实现Serializable,Comparable的接口java之序列化与反序列化的详细解析(全)javaSE从入门到精通的二十万字总结(二)
184 0
java关于File类源码的详细分析 附代码(全)
|
Java
java学习第八天笔记-方法168-两个数组对象练习最终
java学习第八天笔记-方法168-两个数组对象练习最终
60 0
java学习第八天笔记-方法168-两个数组对象练习最终