`
MouseLearnJava
  • 浏览: 467461 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

网页复制代码去行标

    博客分类:
  • Java
阅读更多
在CSDN或者ITEYE等网站上,如果直接复制代码,复制的代码中可能有多余的行标。

例如:
1.public class MyThread implements Runnable {   
	2.    public void run() {   
	3.        for(int i=0; i<10; i++){   
	4.            System.out.println(Thread.currentThread().getName()+":"+i);   
	5.        }   
	6.    }   
	7.}   
	8.public class MyThreadClient {   
	9.    public static void main(String[] args){   
	10.        Thread t = new Thread(new MyThread());   
	11.        t.start();   
	12.        for(int i=0; i<10; i++){   
	13.            System.out.println(Thread.currentThread().getName()+":"+i);   
	14.            Thread.yield();   
	15.        }   
	16.    }   
	17.}  


本文就是简单实现一个小程序,目的就是去除这些多余的行标信息。

行标的特点空格或者TAB数字点号

根据这个特点,写一个适合这种情况的正则表达式==> ^*\\d{1,}+\\.

此正则表达式只适合上面描述的行标,如果复制的代码拥有的行标特点不一样,则需要调整正则表达式。

小程序代码如下:

一个简单的文件过滤器类,主要用于过滤到没有内容的空文件。

package my.tool.file.convertor;

import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 
 * 一个简单的文件过滤器,主要用于过滤到没有内容的空文件。
 * 
 * @author Eric
 *
 */
public class EmptyFileFilter implements FileFilter {

	public boolean accept(File pathname) {
		return !isFileEmpty(pathname);
	}

	private boolean isFileEmpty(File file) {
		FileInputStream fis = null;
		boolean flag = true;
		try {
			fis = new FileInputStream(file);
			try {
				if (fis.available() != 0) {
					flag = false;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (null != fis) {
				try {
					fis.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					fis = null;
				}
			}
		}

		return flag;
	}

}


一个用于去除行标的类

package my.tool.file.convertor;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileConvertor {

	private static final String REGEX_LINE_NUMBER = "^*\\d{1,}+\\.";

	public void convert(String srcFolder, String destFolder) {
		for (File file : new File(srcFolder).listFiles(new EmptyFileFilter())) {
			convertFile(file, destFolder);
			System.out.println(file.getName() + " is converted.");
		}
	}

	private void convertFile(File file, String destFolder) {
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader(file));
			bw = new BufferedWriter(new FileWriter(new File(destFolder, file
					.getName())));
			String line = null;
			while (null != (line = br.readLine())) {
				bw.write(removeLineNumber(line));
				bw.newLine();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					br = null;
				}
			}

			if (null != bw) {
				try {
					bw.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					bw = null;
				}
			}
		}
	}

	private String removeLineNumber(String value) {
		value = value.replaceAll(REGEX_LINE_NUMBER, "");
		return value;
	}
}


测试代码:
package my.tool.file.convertor;

public class Main {

	private static final String DESTINATION_FOLDER = "D:\\DestFolder";

	private static final String SOURCE_FOLDER = "D:\\SrcFolder";

	public static void main(String[] args) {

		System.out.println("Source Folder ==> " + SOURCE_FOLDER);
		System.out.println("Destination Folder ==> " + DESTINATION_FOLDER);
		System.out.println("Convert Files start.......");

		long start = System.currentTimeMillis();

		new FileConvertor().convert(SOURCE_FOLDER, DESTINATION_FOLDER);

		long end = System.currentTimeMillis();

		System.out.println("Convert Files end.......");
		System.out.println("Total elapsed time ==> " + (end - start)
				+ "ms");
	}
}


控制台输出结果如下:
Source Folder ==> D:\SrcFolder
Destination Folder ==> D:\DestFolder
Convert Files start.......
MyTest.java is converted.
MyThread.java is converted.
test.txt is converted.
Convert Files end.......
Total elapsed time ==> 37ms

处理前和处理后的文件内容截图如下:
处理前



处理后


  • 大小: 106.8 KB
  • 大小: 90.1 KB
0
4
分享到:
评论

相关推荐

    在网页中实现运行代码-复制代码-收藏代码-另存代码框效果

    在网页中实现“运行代码-复制代码-收藏代码-另存代码框”这一功能,涉及到的是前端开发中的多个技术点,主要包括HTML、CSS、JavaScript以及可能的第三方库或框架的应用。下面将详细阐述这些知识点: 1. **HTML**:...

    让别人不能复制你网页东西的代码

    为了让他人无法复制网页上的内容,可以通过使用特定的JavaScript代码实现这一功能。这种方法主要适用于那些希望保护网站内容不被轻易复制的网站管理员或开发者。接下来,我们将详细介绍如何利用这些代码阻止用户复制...

    网页爱心表白代码大全

    网页爱心表白代码大全,顾名思义,是一个集合了多种HTML、CSS和JavaScript技术...综上所述,"网页爱心表白代码大全"不仅提供了丰富的表白效果,还是一份实用的编程学习材料,帮助你利用技术创造出温馨浪漫的表白场景。

    JS 代码高亮加复制代码

    这篇博文(尽管描述为空,但根据标题我们可以推测其内容)可能讲解了如何在网页中实现JS代码的高亮显示和添加复制代码的功能。 代码高亮是指在展示代码时,不同类型的语句或关键字用不同的颜色和样式突出显示,以...

    网页设计常用代码

    在本文中,我们将探讨一些常用的网页设计代码及其应用,以及如何保护网页代码和内容不被他人轻易获取。 首先,我们来看一个实现表格半透明显示效果的技巧。在网页中,可以使用CSS样式来控制元素的透明度。通过在`...

    网页复制微信打开微信通用demo,超简单易用

    网页复制微信打开微信通用demo是一种方便的网页技术,主要用于在网页上实现快速复制微信号或相关推广链接,便于用户通过微信进行分享和传播。这个技术主要针对的是那些希望提高网络广告推广效果,尤其是利用微信社交...

    代码运行 复制代码 下载

    其次,“复制代码”功能通常是为开发者提供的便利,他们可能需要将示例代码复制到自己的项目中。在网页上实现这一功能,通常会用到JavaScript的选中和复制操作。例如,可以创建一个按钮,当用户点击时,JavaScript会...

    网页制作常用代码

    此外,通过JavaScript函数`oncontextmenu="return false"`和`onselectstart="return false"`可以禁用网页上的右键点击上下文菜单和文本选择功能,这对于保护网站内容不被轻易复制或防止意外操作具有一定的作用。...

    千千静听-网页版播放器代码

    "千千静听"是一款经典的音乐播放软件,其网页版播放器代码的出现,使得用户无需下载客户端,即可在浏览器中享受音乐。这个压缩包文件包含的“千千静听-网页版播放器”源码,是开发者们研究网页音频播放技术、优化...

    复制链接,文字代码

    在提供的压缩包文件“复制代码.html”中,我们可以推测这是一个HTML文档,可能包含了关于如何在网页环境中复制代码的示例或教程。HTML(超文本标记语言)是网页制作的基础,经常需要复制和粘贴代码来构建和修改网页...

    网页禁止下载、复制代码和使用右键

    以上内容详细介绍了如何通过JavaScript技术来实现网页中的下载、复制代码和使用右键功能的禁用。这些技术不仅有助于保护网页内容的安全,还能为用户提供更加稳定和可控的浏览体验。在实际开发过程中,开发者还需要...

    怎么把网页上不能复制的文字复制下来

    ### 如何破解网页上的不可复制文字 在互联网的日常使用过程中,我们经常遇到一些网站上的文字内容虽然看起来很直观,但却无法直接复制的情况。这主要是因为网页开发者通过各种技术手段限制了用户对网页内容的复制...

    如何将网页特效代码插入到网页中?_帮助文档_网页特效库.files

    在网页设计中,引入特效代码可以为网站增添互动性和吸引力。本教程将详细介绍如何将网页特效代码正确地插入到HTML页面中,以充分利用这些代码库提供的功能。以下是一些关键步骤和注意事项: 1. **理解网页特效代码...

    vb.net实现多标签网页浏览器

    【VB.NET实现多标签网页浏览器】是一个基于VB.NET 2008开发的应用程序,它提供了类似现代浏览器的用户体验,支持多个标签同时打开不同的网页,同时也集成了百度搜索引擎,使得用户可以直接在应用程序内部进行网络...

    csstp下载网页css代码和图片

    在描述中提到的“自动下载网页css代码和图片”,表明这个工具是自动化操作的,可以省去手动复制和保存CSS及图片的繁琐步骤。用户只需提供网页URL,csstp就能自动抓取页面上的所有CSS资源和引用到的图片,极大地提高...

    网页禁止复制实现

    网页禁止复制实现是一种常见的网页保护措施,主要目的是防止未经授权的内容被轻易复制和传播。在互联网上,许多网站尤其是提供原创内容或受版权保护的站点,可能会采取这样的技术手段来保护其知识产权。以下将详细...

    摘取不能复制代码.txt

    根据给定文件的信息,...综上所述,通过分析给定的文件信息,我们了解了如何利用简单的 JavaScript 代码来实现对网页内容的复制。虽然这种方法在某些特定场景下非常有用,但同时也需要注意相关的安全性和兼容性问题。

    html代码运行器可以在线代码运行器,复制代码,另存为代码效果

    HTML代码运行器是一种在线工具,它允许用户在Web浏览器中编写、测试和运行HTML代码,无需在本地计算机上安装任何软件。...在“html代码运行器可以...用户可以通过复制代码和保存代码效果来便捷地管理和使用他们的工作。

    破解网页禁止复制及代码加密script加密

    本文将针对“破解网页禁止复制及代码加密script加密”这一主题进行深入探讨,包括常见的网页防护手段、破解方法以及道德与法律方面的考虑。 ### 常见的网页防护手段 #### 1. **禁用鼠标右键** - 许多网站通过禁用...

Global site tag (gtag.js) - Google Analytics