『壹』 如何用Java来进行文件切割和简单的内容过滤
java中有一个FilenameFilter的接口,能够过滤得到指定类型的文件或者目录,可以版实现文件过滤器,如下代码:权 accept(File file,String path)方法public class DirFilter implements FilenameFilter{private String type;public DirFilter(Strin
『贰』 在java中如何用正则表达式屏蔽javascript脚本
你需要把用户评论的内容中的:
"&" 替换成 "&"
"<" 替换成 "<"
">" 替换成 ">"
'"' (双引号回)替换成 '"'
"'" (单引号)替换成 '''
这样就可以避免答客户端的危险输入了
形如<script type="text/javascript">alert("asdf");</script>
的评论就会被直接显示出来(如同你看到的一样=。=)
而不会被当作html标签转义
====修改====
我的输入被转义了,修改下,记得去掉空格
"&" 替换成 "& amp;"
"<" 替换成 "& lt;"
">" 替换成 "& gt;"
'"' (双引号)替换成 '& quot;'
"'" (单引号)替换成 '& #39;'
『叁』 如何用java代码对同一个txt文本逐行读写并过滤掉不要的信息。
你用readline读出来之后就是一行一个字符串了
然后用indexof("张三"),大于-1就是你要的数据
『肆』 使用java编程 正则表达式 实现去除<script></script>之间的内容
^使用java编程 正则表达式 实现去除<script></script>之间的内容方式如下:
String str = str.replaceAll("<script[^>]*>[\\d\\D]*?</script>","");
其中<script[^>]表示匹配内script,*>[\\d\\D]*?表示任意字容符
『伍』 java在参数上过滤脚本攻击加什么注解
Java运行时会维护一个String Pool(String池, String常量池, 字符串缓冲区)
String池用来存放运行时中产生的各专种字符串,并且池属中的字符串的内容不重复。
而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区
String s = "accp";
创建s之前系统会先在"池子"中查找是否已经存在这个字符串, 如果存在则直接符号该字符串的句柄
如果不存在, 系统会创建一个新"accp"字符串, 并返回句柄, 以后再有"accp"被要求创建, 系统不会创建新的,而是直接返回已经存在的字符串的句柄
String s = new String("accp");
系统不会去"池子"中查找, 直接在内存中新开辟一块空间, 初始化为"accp",并返回句柄
『陆』 在java中,怎样过滤两个文本文件的相同数据,把相同的显示出来,急啊
public class TxtCompare {
private static byte[] b;
public static void main(String[] args) throws Exception{
File f1=new File(文件路径);
File f2=new File(文件路径);
int max=2048;
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
FileInputStream fis=new FileInputStream(f1);
InputStreamReader isr=new InputStreamReader(fis);
if(isr.ready()){
char[] t=new char[fis.available()];
isr.read(t);
sb1.append(t);
}
fis.close();
isr.close();
fis=new FileInputStream(f2);
isr=new InputStreamReader(fis);
if(isr.ready()){
char[] t=new char[fis.available()];
isr.read(t);
sb2.append(t);
}
fis.close();
isr.close();
int len= sb1.length()>=sb2.length()?sb2.length():sb1.length();
for(int i=0;i<len;i++){
if(sb1.charAt(i)!=sb2.charAt(i)) System.out.print(sb1.charAt(i)+"::"+sb2.charAt(i));
}
System.out.print(sb1.length()>sb2.length()?sb1.substring(sb2.length()):sb2.substring(sb1.length()));
}
}
比较每个字符是否相同的类
『柒』 java 文件过滤器怎么实现。
import java.io.File;
import java.io.FilenameFilter;
/**
* 文件过滤器的简单实现
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}
/**
* 列出特定路径下的txt文件
*
* @param directoryName
* 路径名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 确定该路径指向一个目录
if (dir.exists() && dir.isDirectory()) {
// 列出所有结尾为txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}
『捌』 java读取txt文件,如何过滤掉注释以及空格
importjava.io.RandomAccessFile;
/**
*格式
*
*
*<p>
*
*@authorcs121102018年11月16日
*@see
*@since1.0
*/
publicclassFormatText{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");
Stringline;
booleanisComment=true;
while(null!=(line=acf.readLine())){
//去除前后空格
//line.trim();
StringnoneSpaceLine=removeAllSpace(line);
//简单的注解
if(isSimpleComment(noneSpaceLine)){
continue;
}
//多行注解
if(noneSpaceLine.startsWith("/*")){
isComment=true;
}
if(isComment&&noneSpaceLine.endsWith("*/")){
isComment=false;
continue;
}
if(!isComment){
System.out.println(noneSpaceLine);
}
}
acf.close();
}catch(Exceptione){
e.printStackTrace();
}
}
(Stringline){
if(line.startsWith("//")){
returntrue;
}
returnfalse;
}
/**
*注意:这里移除所有的空格,如果只想移除前后两端的,请使用:line.trim();
*
*@paramline
*行
*@returnString
*/
(Stringline){
StringBuilderb=newStringBuilder(line.length());
for(charch:line.toCharArray()){
intnum=(int)ch;
if(num!=9&&num!=32){
b.append(ch);
}
}
returnb.toString();
}
}
测试数据为上面的java文件,测试结果如下
publicclassFormatText{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");
Stringline;
while(null!=(line=acf.readLine())){
StringnoneSpaceLine=removeAllSpace(line.trim());
if(isSimpleComment(noneSpaceLine)){
continue;
}
System.out.println(noneSpaceLine);
}
acf.close();
}catch(Exceptione){
e.printStackTrace();
}
}
(Stringline){
if(line.startsWith("//")){
returntrue;
}
returnfalse;
}
(Stringline){
StringBuilderb=newStringBuilder(line.length());
for(charch:line.toCharArray()){
if(ch!=''){
b.append(ch);
}
}
returnb.toString();
}
}
『玖』 在java中,如何截取有用的内容(在文本文件中)
你首先要确定你来举例的源3行是否是真的3行,如果是,那么问题就变成了从3行字符串中取出两行,如果内容是固定的,那么你可以这样:
String lines=null;
while(lines=fis.readline()!=null)
{
if(lines.contens("Nov 23, 2014") || lines.contens("putPackout_MKD_share"))
.....
}
如果内容固定,那个改用正则表达式匹配
『拾』 java中关于过滤文件的问题
importjava.io.*;
importjava.util.Arrays;
importjava.util.List;
{
privatefinalList<String>suffixes=Arrays.<String>asList(".txt",".doc",".jpg");
@Overridepublicbooleanaccept(Filepathname){
if(pathname.isDirectory()){
returntrue;
}
Stringname=pathname.getName().toLowerCase();
intindex=name.lastIndexOf('.');
Stringsuffix=(index>-1)?name.substring(index):"";
returnsuffixes.contains(suffix);
}
publicstaticvoidmp(Filefile){
if(file.isDirectory()){
File[]files=file.listFiles(newFilterImp());
if(files==null)return;
for(Filef:files){
mp(f);
}
}
else
System.out.println(file.getPath());
}
publicstaticvoidmain(String[]args){
File[]roots=File.listRoots();
System.out.println(Arrays.toString(roots));
for(Fileroot:roots){
mp(root);
}
}
}
递归列出硬盘里的txt doc jpg文件。(有读取权限的)