一、前言

在window系统中有一个大文件需要查看,但是没有像Linux那样的工具命令,所以自己写了一个,目前只能按行切割

二、代码

https://gitee.com/belongQK/split-filehttps://gitee.com/belongQK/split-file

package com.qiankun;import java.io.*;/*** @Auther: qiankun* @Date: 2022/10/24 15:36* @Description :**/
public class SplitFile {private static String SPLIT_TYPE = "l";// 默认按行分割 分割类型,l:为按行分割,s: 为按大小分割 (未支持)private static int SIZE = 100000; //默认10000行 分割大小 为10000 行private static String FILE_PATH = "";private static int fileCount = 1;public static void main(String[] args) throws FileNotFoundException {// 获取设置参数
//        if (args.length % 2 != 0) {
//            return;
//        }for (int i = 0; i < args.length; i++) {if (args[i].equalsIgnoreCase("-t")) {SPLIT_TYPE = args[++i];}if (args[i].equalsIgnoreCase("-s")) {SIZE = Integer.parseInt(args[++i]);}if (args[i].equalsIgnoreCase("-f")) {FILE_PATH = args[++i];}}if (!checkFilePath()) {return;}splitFileAccordingToTheNumberOfLines();}/*** 检查文件是否存在 路径是否正确** @return*/private static boolean checkFilePath() {String property = System.getProperty("user.dir");if (FILE_PATH == null || FILE_PATH.length() == 0) {System.out.println("文件信息有误");return false;}File file = new File(FILE_PATH);if (!file.exists()) {file = new File(property + "\\" + FILE_PATH);if (file.exists()) {FILE_PATH = property + "\\" + FILE_PATH;return true;} else {return false;}}return true;}/*** 根据行数切割文件*/private static void splitFileAccordingToTheNumberOfLines() throws FileNotFoundException {BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(FILE_PATH)));BufferedWriter bufferedWriter = getBufferedWriter();int i = 1;String line = "";try {while (((line = bufferedReader.readLine()) != null)) {if (i >= SIZE) {bufferedWriter.flush();bufferedWriter.close();bufferedWriter = getBufferedWriter();i = 1;}bufferedWriter.write(line);bufferedWriter.write("\n");i++;}} catch (IOException e) {e.printStackTrace();} finally {try {bufferedReader.close();} catch (IOException ioException) {ioException.printStackTrace();}try {bufferedWriter.flush();} catch (IOException ioException) {ioException.printStackTrace();}try {bufferedWriter.close();} catch (IOException ioException) {ioException.printStackTrace();}}}private static BufferedWriter getBufferedWriter() throws FileNotFoundException {return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FILE_PATH + "-" + (fileCount++) + ".log")));}
}

三、使用方式

打包以后

java -jar file-split.jar -f access.log-67.log -s 10000

-s 为切割行数默认100000
-f 为文件名称,可以为全路径,也可以为当前目录的路径 必填

使用Java分割大文件相关推荐

  1. java切割文件_Java实现按行分割大文件

    简介 工作的时候,需要将一个大的文本文件按行分割成几个小文件.本来懒得写,想网上copy一下得了,但是 gLoLdchFGpoogle 了一遍,找了几个代码写的有点乱,尝试了之后发现效率太慢了,一个 ...

  2. linux中split分割文件打开方式,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  3. Java 高效大文件 读取 和 写入(一亿行)

    写文件 需求:写入1亿行,7位以内的随机的数字. 首先看成果图,代表没骗大家!!!!! 这个是最终生成的文件,有770多MB .下面用glogg打开预览: 程序打印耗时 7149ms + 923 ms ...

  4. linux文件分割命令性能,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  5. java 读取txt,java读取大文件

    java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...

  6. linux 分隔大文件,linux系统下分割大文件的方法

    本文介绍下在linux系统中,分割大文件的方法,比如一个5gb日志文件切割为很多小块. 在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有 ...

  7. linux下分割文件的方法,关于linux系统下分割大文件的方法

    <关于linux系统下分割大文件的方法>由会员分享,可在线阅读,更多相关<关于linux系统下分割大文件的方法(4页珍藏版)>请在人人文库网上搜索. 1.关于 linux系统下 ...

  8. linux切大文件为小文件,linux系统下分割大文件的方法

    在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有时,需要传输20gb的大文件到另一台服务器,也需要把它分割成多个文件,这样便于传输数据. ...

  9. linux 大文件按照大小切割,关于linux系统下分割大文件的方法

    关于linux系统下分割大文件的方法 在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有时,需要传输20gb的大文件到另一台服务器,也需要 ...

  10. java实现大文件分片上传

    java实现大文件分片上传 在项目中用到了大文件上传功能,最初从网上参考了一些代码来实现,但是最终的上传效果不是很好,速度比较慢. 之前的上传思路是: 前端利用webUploader分片大文件 后端接 ...

最新文章

  1. poj2449(k短路算法)
  2. python统计httpd 进程的内存占用百分比
  3. Sharepoint页面里添加.net托管代码
  4. 组件用.vue还是.js_如何使用Vue.js 2.0构建灵活的图像上传器组件
  5. Zabbix安装图解教程
  6. 利用Split函数进行多关键字检索
  7. 是该为硬核创新的寒武纪说句公道话了
  8. AtCoder Regular Contest 088
  9. 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
  10. 5款 Mac 常用PDF阅读和编辑软件推荐
  11. excel填充序列_EXCEL工资表制作后导入工资条方法,实现1秒搞定,万人群发
  12. php 京东 联盟 链接,京东联盟推广链接在微信上如何直接跳转接入到京东小程序下单购买?...
  13. RTKLIB源码之单点定位/相对定位后处理简化版—第一版
  14. gst-launch的-v参数
  15. 当我们谈注册中心时我们谈什么
  16. java开发常用注解汇总
  17. 小程序加密解密完成版
  18. 中秋节出门,这些地方必定人山人海,不信你去看看
  19. 【实战技能】如何做好技术培训?
  20. linux ssh 登陆后欢迎界面 banner 设置操作

热门文章

  1. 机关干部的21条人际关系准则
  2. 4g内存php一般开多少个进程,Linux_4G内存服务器epoll并发量最大能达到多少?,按照题主的意思 是根据内存去 - phpStudy...
  3. linux账号与权限管理
  4. 在win服务器查看系统报错日志文件,win2003查看及管理系统日志的方法
  5. [YYOJ]LZY喜欢的数字
  6. 【转】最落魄的日子你是怎样熬过来的?
  7. .gitignore详解 copy by 博客园-gt;沙耶
  8. 对堆区、栈区、全局静态区的理解
  9. Oracle DB audit
  10. Ubuntu解决text file busy