`
rooi
  • 浏览: 53802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
  • rooi: int statusCode =  response.getS ...
    RTC
  • rooi: package com.coamctech.bxloan.co ...
    RTC
  • rooi: establishConnectionTimeout
    RTC
  • rooi: http://www.cnblogs.com/admol/ar ...
    RTC
  • rooi: https://github.com/qbektrix/xml ...
    RTC

文件对比

 
阅读更多
file-report layout:side-by-side &
options:display-mismatches &
output-to:%3 %1 %2

以上命令保存bc.txt
BCompare.exe @C:\bc.txt Mine\1.class Theirs\2.class Report.txt


--------------------------------------

*

  * 读取char

  */

  private String readtxt() throws IOException{

  BufferedReader br=new BufferedReader(new FileReader("d:/sql.txt"));

  String str="";

  String r=br.readLine();

  while(r!=null){

  str+=r;

  r=br.readLine();

  }

  return str;

  }

  Java代码

  /*

  * 读取char

  */

  private String readtxt() throws IOException{

  BufferedReader br=new BufferedReader(new FileReader("d:/sql.txt"));

  String str="";

  String r=br.readLine();

  while(r!=null){

  str+=r;

  r=br.readLine();

  }

  return str;

  }

  Java代码

  /*

  * 读取char

  */

  private String readtxt2() throws IOException{

  String str="";

  FileReader fr=new FileReader("d:/sql.txt");

  char[] chars=new char[1024];

  int b=0;

  while((b=fr.read(chars))!=-1){

  str+=String.valueOf(chars);

  }

  return str;

  }

  Java代码

  /*

  * 读取char

  */

  private String readtxt2() throws IOException{

  String str="";

  FileReader fr=new FileReader("d:/sql.txt");

  char[] chars=new char[1024];

  int b=0;

  while((b=fr.read(chars))!=-1){

  str+=String.valueOf(chars);

  }

  return str;

  }

  Java代码

  /*

  * 读取bytes

  */

  private Byte[] readtxt3() throws IOException{

  InputStream input=new FileInputStream("d:/sql.txt");

  byte[] b=new byte[1024];

  ArrayList<Byte> lsbytes=new ArrayList<Byte>();

  int n=0;

  while((n=input.read(b))!=-1){

  for(int i=0;i<n;i++){

  lsbytes.add(b[i]);

  }

  }

  return (Byte[])(lsbytes.toArray());

  }

  Java代码

  /*

  * 读取bytes

  */

  private Byte[] readtxt3() throws IOException{

  InputStream input=new FileInputStream("d:/sql.txt");

  byte[] b=new byte[1024];

  ArrayList<Byte> lsbytes=new ArrayList<Byte>();

  int n=0;

  while((n=input.read(b))!=-1){

  for(int i=0;i<n;i++){

  lsbytes.add(b[i]);

  }

  }

  return (Byte[])(lsbytes.toArray());

  }
---------------------------------------
File file = new File("F:\\ip.txt");
Reader reader = null;
try {
reader = new FileReader(file);
char[] charArray = new char[100];
int i = 0;
while ((i = reader.read(charArray, 0, charArray.length)) != -1) {
System.out.print(new String(charArray, 0, i));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} | 回答者: chen320320 | 三级 | 2011-8-3 10:04 
          
public class ReadFromFile {
    /**
     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
     */
    public static void readFileByBytes(String fileName) {
        File file = new File(fileName);
        InputStream in = null;
        try {
            System.out.println("以字节为单位读取文件内容,一次读一个字节:");
            // 一次读一个字节
            in = new FileInputStream(file);
            int tempbyte;
            while ((tempbyte = in.read()) != -1) {
                System.out.write(tempbyte);
            }
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }
        try {
            System.out.println("以字节为单位读取文件内容,一次读多个字节:");
            // 一次读多个字节
            byte[] tempbytes = new byte[100];
            int byteread = 0;
            in = new FileInputStream(fileName);
            ReadFromFile.showAvailableBytes(in);
            // 读入多个字节到字节数组中,byteread为一次读入的字节数
            while ((byteread = in.read(tempbytes)) != -1) {
                System.out.write(tempbytes, 0, byteread);
            }
        } catch (Exception e1) {
            e1.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e1) {
                }
            }
        }
    }

    /**
     * 以字符为单位读取文件,常用于读文本,数字等类型的文件
     */
    public static void readFileByChars(String fileName) {
        File file = new File(fileName);
        Reader reader = null;
        try {
            System.out.println("以字符为单位读取文件内容,一次读一个字节:");
            // 一次读一个字符
            reader = new InputStreamReader(new FileInputStream(file));
            int tempchar;
            while ((tempchar = reader.read()) != -1) {
                // 对于windows下,\r\n这两个字符在一起时,表示一个换行。
                // 但如果这两个字符分开显示时,会换两次行。
                // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
                if (((char) tempchar) != '\r') {
                    System.out.print((char) tempchar);
                }
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            System.out.println("以字符为单位读取文件内容,一次读多个字节:");
            // 一次读多个字符
            char[] tempchars = new char[30];
            int charread = 0;
            reader = new InputStreamReader(new FileInputStream(fileName));
            // 读入多个字符到字符数组中,charread为一次读取字符数
            while ((charread = reader.read(tempchars)) != -1) {
                // 同样屏蔽掉\r不显示
                if ((charread == tempchars.length)
                        && (tempchars[tempchars.length - 1] != '\r')) {
                    System.out.print(tempchars);
                } else {
                    for (int i = 0; i < charread; i++) {
                        if (tempchars[i] == '\r') {
                            continue;
                        } else {
                            System.out.print(tempchars[i]);
                        }
                    }
                }
            }

        } catch (Exception e1) {
            e1.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
    }

    /**
     * 以行为单位读取文件,常用于读面向行的格式化文件
     */
    public static void readFileByLines(String fileName) {
        File file = new File(fileName);
        BufferedReader reader = null;
        try {
            System.out.println("以行为单位读取文件内容,一次读一整行:");
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;
            int line = 1;
            // 一次读入一行,直到读入null为文件结束
            while ((tempString = reader.readLine()) != null) {
                // 显示行号
                System.out.println("line " + line + ": " + tempString);
                line++;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
    }
你参考下把 回答者: vltava︶︺︸ | 六级 | 2011-8-3 10:16 
          
jiu就用读取文件就可以了 回答者: flxiaoqi | 一级 | 2011-8-5 11:59 
          
你这里的,张三,李四,王五  间隔是全角逗号,注意一下,根据需要换程序里的内容
我把里面的换成了半角的来作的。

package org.app.demo;

import java.io.BufferedReader;
import java.io.FileReader;

public class Test {

public static void main(String[] args) throws Exception {
exexute();
}

public static void exexute() throws Exception {
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader("F:\\test.txt");
br = new BufferedReader(fr);
while (br.ready()) {
String line = br.readLine().trim();
String[] group = line.split("\",\"");
String[] names = group[0].split(",");
for (int i = 0; i < names.length; i++) {
String name = names[i];
if (i == 0) {
name = names[i] + "\"";
} else {
name = "\"" + names[i] + "\"";

}
System.out.println(name + ",\"" + group[1] + ",\""
+ group[2]);

}
}
} catch (Exception e) {

} finally {
if (br != null) {
br.close();
}
if (fr != null) {
br.close();
}
}
}
}
----------------------------------------------------------------------------------------------------
结果


----------------------------------------------



下边是在项目用到的压缩解压class ,粘出来,分享。



import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

import org.apache.commons.lang.StringUtils;

public class ZipTool {
    private static final int BUFFER = 2048;
    private int level;

    public ZipTool() {
        level = 0;
    }

    /**
     * setLevel
     * @param level int
     */
    public void setLevel(int level) {
        this.level = level;

    }

    /**
     * zip a File or Directory
     * @param inputFile File
     * @param outputFile File
     * @throws ZipException
     */
    public void zipFile(File inputFile, File outputFile) throws ZipException {
        try {
            BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(
                outputFile), BUFFER);
            ZipOutputStream out = new ZipOutputStream(bout);
            zip(out, inputFile, inputFile.getName());
            out.close();
        }
        catch (IOException ex) {
            throw new ZipException(ex.getMessage());
        }
    }

    /**
     * zip some Files
     * @param inputFiles File[]
     * @param outputFile File
     * @throws ZipException
     */
    public void zipFiles(File[] inputFiles, File outputFile) throws ZipException {
        try {
            BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(outputFile),
                BUFFER);
            ZipOutputStream out = new ZipOutputStream(bout);
            for (int i = 0; i < inputFiles.length; i++) {
                zip(out, inputFiles[i], inputFiles[i].getName());
            }
            out.close();
        }
        catch (IOException ex) {
            throw new ZipException(ex.getMessage());
        }
    }

    /**
     * unzip a File
     *
     * @param inputFile File
     * @param outputFile File
     * @throws ZipException
     */
    public void unZipFile(File inputFile, File outputFile) throws ZipException {
        try {
            FileInputStream tin = new FileInputStream(inputFile);
            CheckedInputStream cin = new CheckedInputStream(tin, new CRC32());
            BufferedInputStream bufferIn = new BufferedInputStream(cin, BUFFER);
            ZipInputStream in = new ZipInputStream(bufferIn);
            ZipEntry z = in.getNextEntry();

            while (z != null) {
                String name = z.getName();
                if (z.isDirectory()) {
                    File f = new File(outputFile.getPath() + File.separator + name);
                    f.mkdir();
                }
                else {
                    File f = new File(outputFile.getPath() + File.separator + name);
                    f.createNewFile();
                    FileOutputStream out = new FileOutputStream(f);
                    byte data[] = new byte[BUFFER];
                    int b;

                    while ( (b = in.read(data, 0, BUFFER)) != -1) {
                        out.write(data, 0, b);
                    }
                    out.close();
                }
                z = in.getNextEntry();
            }

            in.close();
        }

        catch (IOException ex) {
            throw new ZipException(ex.getMessage());
        }

    }

    private void zip(ZipOutputStream out, File f, String base) throws
        FileNotFoundException, ZipException {
        if (level != 0) {
            out.setLevel(level);
        }
        if (f.isDirectory()) {
            zipDirectory(out, f, base);
        }
        else {
            if (StringUtils.isEmpty(base)) {
                base = f.getName();
            }
            zipLeapFile(out, f, base);
        }

    }

    private void zipDirectory(ZipOutputStream out, File f, String base) throws
        FileNotFoundException, ZipException {
        File[] files = f.listFiles();
        if (level != 0) {
            out.setLevel(level);
        }
        try {
            out.putNextEntry(new ZipEntry(base + "/"));
        }
        catch (IOException ex) {
            throw new ZipException(ex.getMessage());
        }
        if (StringUtils.isEmpty(base)) {
            base = new String();
        }
        else {
            base = base + "/";
        }

        for (int i = 0; i < files.length; i++) {
            zip(out, files[i], base + files[i].getName());
        }

    }

    private void zipLeapFile(ZipOutputStream out, File f, String base) throws
        FileNotFoundException, ZipException {
        if (level != 0) {
            out.setLevel(level);
        }
        try {
            out.putNextEntry(new ZipEntry(base));
            FileInputStream in = new FileInputStream(f);
            BufferedInputStream bufferIn = new BufferedInputStream(in, BUFFER);
            byte[] data = new byte[BUFFER];
            int b;
            while ( (b = bufferIn.read(data, 0, BUFFER)) != -1) {
                out.write(data, 0, b);
            }
            bufferIn.close();
        }
        catch (IOException ex) {
            throw new ZipException(ex.getMessage());
        }
    }
}
-----------------------------------------------------------

在ant脚本中对外部ant任务的调用,在多项目管理中特别有用。两种方法总结一下:
使用antfile、使用exec
一:使用antfile
    <target name="copy_lib" description="Copy library files from  project1 to project2">
          <ant antfile="build.xml"
              dir="${project1dir}"
              inheritall="false"
              inheritrefs="false"
              target="copy_to_project2_lib"
          />
    </target>
antfile表示子项目的构建文件。
dir表示构建文件所再的目录,缺省为当前目录。
inheritall表示父项目的所有属性在子项目中都可使用,并覆盖子项目中的同名属性。缺省为true。
inheritrefs表示父项目中的所有引用在子项目中都可以使用,并且不覆盖子项目中的同名引用。缺省为false。
如果在ant任务中显示的定义引用,如上例<reference refid="filter.set">则该引用将会覆盖子项目中的同名引用。 
target表示所要运行的子项目中的target,如果不写则为缺省target。
二:使用exec
    <target name="copy_lib" description="Copy library files from  project1 to project2">
        <exec executable="cmd.exe">
            <arg line="/c &quot;cd ..\project1 &amp;&amp; ant copy_to_project2_lib &quot; "/>
    </exec>
    </target>
翻译为命令行就是:cmd.exe /c "cd ..\project && ant copy_to_project2_lib" 
意思是直接调用系统控制台,先执行cd命令,再执行ant脚本指定任务,/c 表示执行后续 String 指定的命令,然后停止。
arg中的值不能直接使用双引号, 否则会出错. 请使用xml中双引号的描述符 &quot;代替
http://sanmaoyouxiao.iteye.com/blog/82888
http://snowolf.iteye.com/blog/642492


T t = new T();
t.setA(new String[]{"123","32"});
   Field f[] = t.getClass().getDeclaredFields();
   for (int i=0;i<f.length ; i++)
   {
   System.out.println(f[i].getName());
   String name = f[i].getName();
   name = "get"+ name.substring(0,1).toUpperCase()+name.substring(1);
   Method met = t.getClass().getMethod(name, null);
   Object o = met.invoke(t, null);
  Class c =  o.getClass().getComponentType(); 
 
  Object a =   Array.newInstance(c,Array.getLength(o) );
   
   System.out.println("----"+c.getName());
  
  
  
   }
分享到:
评论
9 楼 rooi 2013-07-30  
awk -F'\\\||\\\|\\\[|],\\\[|]$' '{print $1  $2  $3 }' tmp.txt
8 楼 rooi 2012-12-07  
http://blog.csdn.net/kai_wei_zhang/article/details/8250299
7 楼 rooi 2012-11-06  
:GetTempName
set tmpfile=%TMP%.\Jad-%RANDOM%-%TIME:~6,5%.tmp
if exist "%tmpfile%" goto :GetTempName
Helpers\Java\jad.exe  -p  %1  > "%tmpfile%"
for %%F in (%tmpfile%) do set size=%%~zF
if /I %size%  equ 0 goto :SkipJalopy
native2ascii -reverse "%tmpfile%"  %2
:SkipJalopy
del "%tmpfile%"
6 楼 rooi 2012-09-27  
:GetTempName
set tmpfile=%TMP%.\Jad-%RANDOM%-%TIME:~6,5%.tmp
if exist "%tmpfile%" goto :GetTempName
Helpers\Java\jad.exe  -p  %1  > "%tmpfile%"
for %%F in (%tmpfile%) do set size=%%~zF
if /I %size%  equ 0 goto :SkipJalopy
native2ascii -reverse "%tmpfile%"  %2
:SkipJalopy
del "%tmpfile%"
5 楼 rooi 2012-01-17  
  ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "BCompare.exe","@bc.txt","/silent");
              builder.directory(new File("D:\\Program Files\\Beyond Compare 3"));
            try
{
Process process = builder.start() ;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
4 楼 idomon3 2011-09-12  
eclipse的java编译器命令行
http://blog.csdn.net/yxf/article/details/1600351
eclipse 帮助
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
3 楼 idomon3 2011-09-04  
jad -o -p -dMine -sjava MyTree.class>test.java
2 楼 idomon3 2011-09-04  
http://blog.csdn.net/shibenjie/article/details/4242864
1 楼 rooi 2011-08-23  
Document doc = Jsoup.parse("<img src='/images.png'/>");
Element span = doc.select("img").first(); // <span>One</span>
span.wrap("<a href='http://example.com/'></a>");
System.out.println(doc.html());

相关推荐

    ini 文件比较工具

    在使用通用的文件比较工具如Beyond Compare进行ini文件对比时,可能会遇到一些挑战。由于ini文件的结构特性,当section或item的位置发生变化,通用工具可能无法准确识别这些变化,导致比较结果不直观或者误导用户。...

    二进制文件/PE文件对比工具非常好用

    标题中的“二进制文件/PE文件对比工具非常好用”表明我们讨论的是一款用于比较二进制文件,特别是PE(Portable Executable)格式文件的工具。PE文件是Windows操作系统上执行程序的标准格式,包括DLL动态链接库和EXE...

    文件对比器

    "文件对比器"是一种强大的工具,它主要用于比较两个或多个文件之间的差异,以便用户能够快速识别和理解它们的内容区别。在软件开发过程中,这样的工具至关重要,尤其是对于C++、Java和Web开发等领域,因为程序员经常...

    bin文件对比工具

    "bin文件对比工具"是专门用于比较两个bin文件差异的软件,这对于固件开发、系统调试以及数据恢复等工作至关重要。本文将深入探讨bin文件的性质、bin文件对比的必要性以及Fairdell HexCmp2这款工具的功能与使用。 ...

    文件比较器,可以进行二进制比较,文本比较

    在二进制模式下,工具会逐字节对比两个文件的内容,以确定它们是否完全相同。这对于检查程序的编译结果、验证软件更新的完整性或查找硬盘上的损坏文件非常有用。例如,"beycomp.exe" 可能就是这样一个二进制文件比较...

    Qt5.9 文件比较工具

    Qt5.9 提供了一个强大的文件比较工具,允许用户在不同场景下对文件进行对比分析。本文将深入探讨这个工具的实现原理、功能特性和使用方法。 首先,Qt 是一个跨平台的应用程序开发框架,支持Windows、Linux、macOS等...

    C#实现文件比较的功能,比较两个文件内容是否相同

    在C#编程中,文件比较是一项常见的任务,用于检测两个文件的内容是否一致。这在很多场景下都很有用,比如版本控制、数据验证或者备份检查等。下面我们将详细探讨如何使用C#来实现这个功能。 首先,我们需要理解文件...

    dump文件对比软件.rar

    "dump文件对比软件"是指能够帮助用户比较两个或多个dump文件,找出内存状态差异的工具。这类软件可以帮助开发者定位代码中的错误或者性能瓶颈,尤其是在多版本迭代或者问题复现时。例如,WinDbg、Visual Studio、...

    HTML+JS+mergely在线文件对比

    本文将深入探讨如何使用这些技术实现在线文件对比功能。 首先,HTML(HyperText Markup Language)是网页内容的结构化语言,负责定义页面的布局和元素。在Mergely这样的在线对比工具中,HTML用于创建用户界面,包括...

    HEX和BIN文件快速对比工具,可以对比两个HEX和BIN文件,清晰看出不同,对于嵌入式STM32单片机开发很有帮助

    总的来说,HEX和BIN文件对比工具是嵌入式开发中的利器,特别是在STM32这样的单片机项目中。它不仅简化了文件的比较过程,还提升了开发效率,降低了因错误更新导致的问题。了解并熟练使用这样的工具,是提升嵌入式...

    TotalCommander文件对比工具

    1. **目录对比**:TotalCommander不仅限于文件对比,还可以比较整个目录的结构和内容,找出文件夹间的差异,这对于备份验证或同步操作极其便利。 2. **自定义设置**:用户可以根据自己的需求调整对比设置,例如设置...

    WinMerge文件比较工具

    WinMerge以其直观的用户界面和高效的对比功能,使得文件比较和合并变得轻松高效。 1. **基本功能**: - **文件比较**:WinMerge能够对比两个文本文件或二进制文件的内容,高亮显示差异之处,方便开发者识别和理解...

    windows文件比较器

    在Windows操作系统中,文件比较器是一种非常实用的工具,它能够帮助用户检查两个或多个文件之间的差异,确保数据的一致性和准确性。...只要善用这类工具,就能在日常工作和生活中轻松应对各种文件对比的需求。

    java文件对比工具

    Java文件对比工具是一种用于比较两个或多个文件之间差异的实用程序,特别适用于编程环境中检查代码间的相似性或差异。在Java开发中,这样的工具能够帮助开发者有效地定位代码修改的地方,协同工作时解决合并冲突,...

    超好用的文件对比工具

    文件对比是IT领域中一项非常实用的技术,尤其对于开发者、数据分析师和系统管理员而言,它可以帮助用户快速识别两个或多个文件或目录之间的差异。标题提到的“超好用的文件对比工具”显然是一款专为此目的设计的应用...

    文件比较 源码对比 分析文件

    总之,文件比较是IT工作中的重要工具,而Beyond Compare 3以其丰富的功能和易用性,成为许多专业人士首选的文件对比软件。熟练掌握文件比较技术,无论是对于代码调试、版本管理还是数据验证,都能显著提高工作效率,...

    文件比较工具winmerge

    **文件比较工具WinMerge** WinMerge是一款强大的文件和文件夹比较工具,专为Windows操作系统设计。它可以帮助用户在两个不同的文件或目录之间进行差异分析,从而实现文件的合并、同步和版本控制。这款软件广泛应用...

    Windows下的文件对比软件:DF.exe

    在Windows操作系统中,进行文件对比是一项非常常见的任务,特别是在版本控制、代码审查或者文档校对时。DF.exe是一款专为Windows设计的文件对比工具,它能够帮助用户快速、直观地发现两个文件之间的差异,功能类似于...

    文件比较器绿色便携版

    "文件比较器绿色便携版"是一款用于比较文件和文件夹内容的实用工具,它具有高效、安全的特点,无需安装,直接运行即可使用。这款软件的亮点在于其绿色无污染,不含任何恶意插件、病毒或广告,用户可以安心地在自己的...

Global site tag (gtag.js) - Google Analytics