java 文件读写实例

简介: java 文件读写实例

1.dump

将一个文件(图片lion.jpg)复制一份(bbb.bmp)。

主要的部分:使用java.io的InputStream和OutputStream来进行文件输入、输出(write)。

    public static void dump(InputStream src, OutputStream dest)
    throws IOException
    {
        InputStream input = new BufferedInputStream(src);
        OutputStream output = new BufferedOutputStream(dest);
        byte[] data = new byte[1024];
        int length = -1;
        while ((length = input.read(data)) != -1) {
            output.write(data, 0, length);
        }
        input.close();
        output.close();
    }

完整代码:

package ch9;
import java.io.*;
 
public class dump {
  public static void main(String[] args) {
    try
    {
      dump(new FileInputStream("D:\\lion.jpg"),
         new FileOutputStream("D:\\bbb.bmp"));  
    }
    catch(FileNotFoundException fex)
    {
      fex.printStackTrace();
    }
    catch(IOException ioe)
    {
      ioe.printStackTrace();
    }
  }
  
  public static void dump(InputStream src, OutputStream dest) throws IOException
  {
    InputStream input = new BufferedInputStream(src);
    OutputStream output = new BufferedOutputStream(dest);
    byte[] data = new byte[1024];
    int length = -1;
    while((length = input.read(data))!= -1) {
      output.write(data, 0, length);
    }
    input.close();
    output.close();
  }
  
  
}

2.ReadLineAndAddNum

读入一个java文件,然后去掉注释,加上行号。

主要部分:

try {
      File fin = new File(infname);
      File fout = new File(outfname);
      
      BufferedReader in = new BufferedReader(new FileReader(fin));
      PrintWriter out = new PrintWriter(new FileWriter(fout));
      
      int cnt =0;
      String s = in.readLine();
      while(s!=null) {
        cnt++;
        s = deleteComments(s);
        out.println(cnt+":\t"+s);
        s = in.readLine();
    }
      in.close();
      out.close();
    }catch(FileNotFoundException e1) {
      System.err.println("File not found");
    }catch(IOException e2) {
      e2.printStackTrace(); 
    }
  }
package ch9;
import java.io.*;
public class ReadLineAndAddNum {
  public static void main(String[] args) {
    String infname = "C:\\Users\\刘飞\\eclipse-workspace\\ch9\\src\\ch9\\CopyFileAddLineNumber.java";
    String outfname = "C:\\Users\\刘飞\\eclipse-workspace\\ch9\\src\\ch9\\CopyFileAddLineNumber.txt";
    if(args.length >=1) infname = args[0];
    if(args.length>=2) outfname = args[1];
    
    try {
      File fin = new File(infname);
      File fout = new File(outfname);
      
      BufferedReader in = new BufferedReader(new FileReader(fin));
      PrintWriter out = new PrintWriter(new FileWriter(fout));
      
      int cnt =0;
      String s = in.readLine();
      while(s!=null) {
        cnt++;
        s = deleteComments(s);
        out.println(cnt+":\t"+s);
        s = in.readLine();
    }
      in.close();
      out.close();
    }catch(FileNotFoundException e1) {
      System.err.println("File not found");
    }catch(IOException e2) {
      e2.printStackTrace(); 
    }
  }
  
  static String deleteComments(String s)
  {
    if(s==null) return s;
    int pos = s.indexOf("//");
    if(pos<0) return s;
    return s.substring(0, pos);
  }
  
}
相关文章
|
15天前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
108 1
|
1月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
54 0
|
3月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
3月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
133 0
|
3月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
225 0
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
226 14
|
4月前
|
存储 算法 Java
【Java实例-智慧牌局】Java实现赌桌上的21点
游戏规则:游戏开始时,玩家和庄家各获得两张牌,玩家可以看到自己手中的两张牌以及庄家的一张明牌。玩家需要根据手中的牌面总和,选择“要牌”(Hit)以获取更多牌,或“停牌”(Stand)停止要牌。如果玩家的牌面总和超过21点,即为爆牌,玩家立即输掉游戏。若玩家选择停牌,庄家则开始行动,其策略是当牌面总和小于17点时必须继续要牌。若庄家牌面总和超过21点,则庄家爆牌,玩家获胜。若双方均未爆牌,最终比较牌面总和,更接近21点的一方获胜;若牌面总和相同,则游戏以平局结束。
74 0
|
4月前
|
Java 开发者
【Java实例-英雄对战】Java战斗之旅,既分胜负也决生死
游戏规则:在“英雄对战”中,玩家和敌人轮流选择行动,目标是在对方生命值归零前将其击败。游戏开始时,玩家和敌人都有100生命值。每回合,玩家可以选择“攻击”,“追击”,“闪避反击”这三种行动之一。
64 0
|
4月前
|
Java
【Java实例-小兵拆炸弹】Java打造数学挑战-拆炸弹
今天,我将向大家分享一款用Java开发的控制台小案例——“小兵拆炸弹”。游戏规则:玩家需要在有限的尝试次数内解开一系列数学题,以成功拆解炸弹。游戏的目标是连续答对五道数学题,每道题都由系统随机生成。如果玩家在五次机会内成功解密,游戏胜利;否则,炸弹爆炸,游戏结束。
84 0
|
4月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
380 5