`
qhuwn
  • 浏览: 71020 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

txt小说切割器

阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;

public class CutFile {
	
	public static void cut(File file,int fileSize){
		fileSize = fileSize * 1024;
		
		int count = (int)file.length()/fileSize;
		InputStream in = null;

		try {
			in =  new FileInputStream(file);
			byte[] buffer = new byte[(int)file.length()];
			in.read(buffer);
			
			for(int i = 0 ; i <count;i++){
				
				String ext = getFileExt(file);
				
				String path = file.getPath()+""+i+ext;
				
				File file1  =  new File(path);
				
				OutputStream out = new FileOutputStream(file1);
				
				int length = (int)(((i+1)*fileSize>file.length())?(file.length()-i*fileSize)
							:fileSize);
				
				int offset = i * fileSize;
				out.write(buffer,offset,length);
				out.close();
			}	
			
			System.out.println("切割完成!共生成"+count+"个文件");
		} catch (IOException e) {
			e.printStackTrace();
			
		}finally{
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	//获取文件后缀名
	public static String getFileExt(File file){
		String ext = "";
		
		String fileName = file.getName();
		
		if(fileName.contains(".")){
			ext = fileName.substring(fileName.lastIndexOf("."), fileName.length());
		}
		
		return ext;
	}
	
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		//得到文件地址
		String filePath = "";
		
		File file = null;
		
		while(true){
			System.out.println("请输入文件地址:");
			filePath = scanner.next();
			if(null!=filePath&&!"".equals(filePath)){
				file = new File(filePath);
				if(!file.isFile()){
					System.out.println("文件地址不正确!");
					continue;
				}
				
				if(file.length()<=0){
					System.out.println("文件太小了!");
					continue;
				}
				
				break;
			}
		}
		
		//文件切割大小
		int fileSize = 0;
		while(true){
			System.out.println(file.getName()+"的大小是:"+file.length()/1024+"KB");
			System.out.println("请输入切割大小(KB):");
			fileSize = scanner.nextInt();
			if(fileSize>0){
				break;
			}
		}
		
		
		cut(file,fileSize);
	}
}




用手机看小说,按的手疼,就做了这个,还是不太完善。
这个小程序切其他文件,打开后不正确,还得做个合并工具。


修正小数点问题
package com.wangning.util;

import java.io.File;   
import java.io.FileInputStream;   
import java.io.FileOutputStream;   
import java.io.IOException;   
import java.io.InputStream;   
import java.io.OutputStream;   
import java.text.NumberFormat;
import java.util.Scanner;   
  
public class CutFile {   
       
    public static void cut(File file,double fileSize){   
        fileSize = fileSize * 1024;  
        double a = file.length()/fileSize;
        int count =  (int)(file.length()/fileSize);   
        if(a > (int) a ){
        	count +=1;
        } 
        
        
        InputStream in = null;   
  
        try {   
            in =  new FileInputStream(file);   
            byte[] buffer = new byte[(int)file.length()];   
            in.read(buffer);   
               
            for(int i = 0 ; i <count;i++){   
                   
                String ext = getFileExt(file);   
                   
                String path = file.getPath()+""+i+ext;   
                   
                File file1  =  new File(path);   
                   
                OutputStream out = new FileOutputStream(file1);   
                   
                int length = (int)(((i+1)*fileSize>file.length())?(file.length()-i*fileSize)   
                            :fileSize);   
                   
                int offset = i * (int) fileSize;   
                out.write(buffer,offset,length);   
                out.close();   
            }      
               
            System.out.println("切割完成!共生成"+count+"个文件");   
        } catch (IOException e) {   
            e.printStackTrace();   
               
        }finally{   
            try {   
                in.close();   
            } catch (IOException e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
        }   
    }   
       
    //获取文件后缀名   
    public static String getFileExt(File file){   
        String ext = "";   
           
        String fileName = file.getName();   
           
        if(fileName.contains(".")){   
            ext = fileName.substring(fileName.lastIndexOf("."), fileName.length());   
        }   
           
        return ext;   
    }   
       
       
    public static void main(String[] args) {   
        Scanner scanner = new Scanner(System.in);   
           
        //得到文件地址   
        String filePath = "";   
           
        File file = null;   
           
        while(true){   
            System.out.println("请输入文件地址:");   
            filePath = scanner.next();   
            if(null!=filePath&&!"".equals(filePath)){   
                file = new File(filePath);   
                if(!file.isFile()){   
                    System.out.println("文件地址不正确!");   
                    continue;   
                }   
                   
                if(file.length()<=0){   
                    System.out.println("文件太小了!");   
                    continue;   
                }   
                   
                break;   
            }   
        }   
           
        //文件切割大小   
        int fileSize = 0;   
        while(true){   
            System.out.println(file.getName()+"的大小是:"+file.length()/1024+"KB");   
            System.out.println("请输入切割大小(KB)/每1000个汉字:");   
            fileSize = scanner.nextInt();   
            if(fileSize>0){   
                break;   
            }   
        }   
           
           
        cut(file,fileSize*2);   
    }   
}  

分享到:
评论

相关推荐

    txt文件切割器

    《txt文件切割器详解及其应用》 在信息技术领域,数据处理是日常工作的重要组成部分,而文本文件作为最常见的数据格式之一,其管理和处理显得尤为关键。在面对大容量的txt文本文件时,为了便于存储、传输或者特定...

    TXT文本切割器........

    《TXT文本切割器:高效处理大文本的利器》 在信息技术高速发展的今天,文本处理是日常工作中不可或缺的一部分。尤其在大数据时代,面对动辄几MB甚至GB的TXT文本文件,传统的文本编辑器往往无法有效应对,这就需要...

    TXT文本切割器(电子书文档分割器)

    《TXT文本切割器:电子书文档分割神器》 在信息技术高速发展的今天,电子书已经成为阅读的重要形式,而TXT格式作为最原始、最常见的电子书格式,因其简洁轻便,深受读者和作者的喜爱。然而,面对一些体积庞大或者...

    txt文本切割器-手机电子书必备工具

    《txt文本切割器——手机电子书制作与管理的得力助手》 在信息化时代,电子书因其便携性、环保性和存储容量大等优势,深受广大读者喜爱,特别是在手机阅读日益普及的今天,手机电子书已成为许多人日常阅读的重要...

    c#写的txt文件切割器

    本文将详细介绍一个用C#编写的TXT文件切割器,并探讨相关技术点,以及如何利用该工具处理《笑傲江湖》这样的长篇小说。 首先,"C#写的txt文件切割器"是指使用C#编程语言开发的一款软件工具,它的主要功能是将大的...

    txt 文件切割器 裁剪你的txt文件

    在IT领域,文本处理是一项基础且重要的任务,而“txt 文件切割器 裁剪你的txt文件”这个工具就是专为处理大体积的TXT文本文件而设计的。它允许用户根据自定义的长度或字数标准来分割TXT文件,以满足特定的需求。以下...

    文本切割器,免安装 简单

    文本切割器是一款便捷的工具,尤其适用于处理长篇幅的电子文档,如电子书或大段文字。这个软件的主要功能是将长文本按照用户设定的方式分割成若干个小段,使得阅读和管理变得更加轻松。它无需安装,即开即用,体现了...

Global site tag (gtag.js) - Google Analytics