java导入txt文件并在页面展示内容

目录

1.前端

2.后台代码

3.问题


基于jfinal框架。

不一定适用,但是流程是这个流程。

各个框架的使用,有基本基础的可以自行修改。

采取的是ajaxSubmit提交,如果只是action提交到简单了,自行修改。

后台的返回可以简化。

1.前端

需要jqueryjs文件,jquery.form.js文件

代码:

html:

<!--导入txt-->
                <form id="importform" class="form-horizontal" method="post" enctype="multipart/form-data">
                    <div class="title">
                        <input type="file" value="导入txt" name="files" accept=".txt">
                        <p>上传少于1500字,大小小于2M的txt文件</p>
                        <input class="btn btn-primary" id="importfile" type="button" value="导入文本">
                    </div>
                </form>

js:

//导入txt
    $("#importfile").click(function(){
        var options = {
                url: '../aaa/sss',
                type: 'post',
                dataType: 'json',
                success: function(reg) {
                    reg=eval("(" + reg + ")");
                    if(reg.data==1){
                        var con=reg.message;
                        console.log(con);

                        $(body).append(con);
                    }else{
                       alert(reg.message);
                    }
                },
                error: function(data) {
                    alert("上传错误,请稍后再试!");
                }
            };
        $('#importform').ajaxSubmit(options);
    });

2.后台代码

public void postContent() {
        UploadFile uploadFile = getFile("files");
        Integer loginName = getSessionAttr("loginUserName");
//        renderText(JsonKit.toJson(as.postContent(uploadFile,loginName)));
        renderJson(JsonKit.toJson(as.postContent(uploadFile,loginName)));
    }

/**
     * 获取txt,获取内容
     */
    public String postContent(UploadFile a,Integer loginName) {
        String path = PathToFile.ARTICLE_PATH.replace("LOGINAME", loginName.toString());
        
        File file=a.getFile();
        Long createTime=System.currentTimeMillis();
        //判断文件大小
        Long size = file.length() / 1024;
        String fileName = file.getName().toLowerCase();
        String oldFilePath = file.getAbsolutePath();
        if (null != size && size >= 2048) {
            return error(ResultStr.UPFILE_OVERSIZE);
        }
        //判断文件类型
        String fileType = fileName.substring(fileName.lastIndexOf("."));
        if (!".txt".equals(fileType)) {
            return error("文件类型错误");
        }
        //复制文件到服务器
        String newFileName = oldFilePath.substring(0, oldFilePath.lastIndexOf(".")) + createTime + fileType;
        File newFile = new File(newFileName);
        fileName = newFile.getName();
        file.renameTo(newFile);
        PathToFile.getFileToDirs(newFile, path);// 把文件复制到文件夹
        String filePath = path + fileName;// 文件路径
        newFile.delete();// 删除上传的文件
        
        String con=readTxt(filePath);//读取txt文本
        
        File f = new File(filePath);
        f.delete();//删除文件
        
        if(con.length()>1500){
            con=con.substring(0, 1500);
        }
        
        String content = con.replaceAll("(?i)[\ufeff]", "").replaceAll("[\u00a0]", " ").trim();
        String[] split = content.split("(?<![、,:一-十0-9])\\s+");
        StringBuffer sb = new StringBuffer("");
        for (String str : split) {
            if (!StrKit.isBlank(str.replaceAll("[\u3000]", "").trim())) {
                sb.append("<p>");
                sb.append(str);
                sb.append("</p>");
            }
        }
        
        return success(sb.toString());
    }
    
    private String readTxt(String pathName){
        StringBuffer sb = new StringBuffer();
        try {
            BufferedReader br = new BufferedReader(new FileReader(pathName));
            String readLine = null;
            while (null != (readLine = br.readLine())) {
                sb.append(readLine);
            }
            br.close();
            return sb.toString();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }

/**
     * 复制文件到文件夹
     *
     * @param filePath 文件路径
     * @param file     需要复制的文件
     */
    public static void getFileToDirs(File file, String filePath) {
        File files = new File(filePath);
        if (!files.exists()) {
            files.mkdirs();
        }
        try {
            FileUtils.copyFileToDirectory(file, files);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

//附读取word文件的方法

private String readDoc(String filePath){
        StringBuffer sb = new StringBuffer();
        String buffer = "";
        try {
            if (filePath.endsWith(".doc")) {
                InputStream is = new FileInputStream(new File(filePath));
                WordExtractor ex = new WordExtractor(is);
                buffer = ex.getText();
                ex.close();
                if(buffer.length() > 0){
                    //使用回车换行符分割字符串
                    String [] arry = buffer.split("\\r\\n");
                    for (String string : arry) {
                        sb.append(string.trim());
                    }
                }
            } else if (filePath.endsWith(".docx")) {
                OPCPackage opcPackage = POIXMLDocument.openPackage(filePath);
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
                buffer = extractor.getText();
                extractor.close();
                if(buffer.length() > 0){
                    //使用换行符分割字符串
                    String [] arry = buffer.split("\\n");
                    for (String string : arry) {
                        sb.append(string.trim());
                    }
                }
            } else {
                return "";
            }
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

3.问题

jquery string转json

var reg;

reg=eval("(" + reg + ")");

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用Java读取OFD文件内容,可以使用第三方库或者开源项目。以下是一个示例: 首先,需要下载并导入一个Java的OFD文件处理库,比如Apache PDFBox或者iText。这些库可以用于处理PDF文件,而OFD文件实际上是一种基于PDF格式的文件。 然后,可以使用以下代码来读取OFD文件内容: ``` import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; public class OFDReader { public static void main(String[] args) { try { // 读取OFD文件 PDDocument document = PDDocument.load(new File("example.ofd")); // 创建PDF文本剥离器 PDFTextStripper pdfStripper = new PDFTextStripper(); // 获取OFD文件的总页数 int pageCount = document.getnumberOfPages(); // 循环读取每一页的内容 for (int i = 1; i <= pageCount; i++) { pdfStripper.setStartPage(i); pdfStripper.setEndPage(i); // 提取该页的文本内容 String pageText = pdfStripper.getText(document); // 输出文本内容 System.out.println("第 " + i + " 页的文本内容:"); System.out.println(pageText); } // 关闭OFD文件 document.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码使用了Apache PDFBox库来加载OFD文件,并使用PDFTextStripper来提取文本内容。可以通过循环遍历每一页,并提取每一页的文本内容。最后,关闭OFD文件。 请注意,OFD文件可能包含多个页面,因此需要在循环中处理每一页的内容。另外,需要根据具体的OFD文件处理库的API文档来使用适当的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hsc从容

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值