• JAVA JFrame程序小计


    笔者受人委托,需要写一个文件转换的程序。

    一听到文件转换,笔者第一个反应是想shell或者python这样的脚本语言来实现。但是委托人有些特殊要求,想要文件转换的过程中加入一些可以控制修改的功能,并且要求有操作界面,这样他们就可以很轻松的通过软件来完成文件转换的过程,最终,笔者绝地你给使用java语言来完成这个软件。

    以下记录本次程序碰到的一些有用的部分。

    1、首先,界面的美观性。JFrame自带的主题感觉比较难看,笔者使用UIManager修改了界面的主题。代码如下:

    String lookandfeel = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";
    UIManager.setLookAndFeel(lookandfeel);

    修改后界面效果如下:

    2、文件读写

    笔者每次读取一行文件,代码如下

    File fileInput = new File(strInputFile);
    if(fileInput.exists()) {
        try {
            FileReader freader = new FileReader(fileInput);
            BufferedReader reader = new BufferedReader(freader);
            String strLine=null;while(null != (strLine = reader.readLine())) {
                System.out.println(strLine);
            }
        }
    }

    写入文件代码:

    File fileOutput = new File(strOutputFile);
    FileOutputStream out = new FileOutputStream(fileOutput);
    String strContent="写入文件的内容";
    out.write(strContent.getBytes());

    在文件写入的过程中,出现了一个比较有趣的问题。

    笔者想要用固定长度的格式写入数据到文件中,所有采用String.format方法来组织一个固定长度格式的字符串以便写入文件,最后发现,String.format方法中汉字的长度是1,而不是GBK编码的2.

    最后解决这个问题的办法如下,貌似这个是非传统的方法:

    String strChinese="汉字";
    String strOutput=String.format("%-100s", new String(strChinese.getBytes, "ISO-8859-1"));
    strOutput=new String(strOutput.getBytes("ISO-8859-1"));

    这样转换出来的结果行字就是2个字节。

    3、软件打包

    程序编写完成后,笔者导出jar文件,最后使用exe4j软件将jar包转换成exe。

    使用exe4j生成执行码后,需要将带jar包的文件目录一起拷贝给使用者,这样使用者在没有jar环境的电脑上也可以运行该程序。

    心有猛虎,细嗅蔷薇
  • 相关阅读:
    Java 注解(Annotation)
    定时任务相关介绍
    Linux基础命令yum
    Linux基础命令rpm
    Linux基础命令date(如何设置时间? 如何同步时间?)
    Linux基础命令tar(如何压缩文件?如何解压文件?如何不解压查看内容?)
    Linux基础命令gzip
    Linux基础命令zip unzip (压缩 解压)
    Linux中压缩的概念(什么是压缩包?)
    Linux基础命令练习答案7.27
  • 原文地址:https://www.cnblogs.com/stupid-vincent/p/6218211.html
Copyright © 2020-2023  润新知