
分别读取两个文件
String[] s1 = new String[] { "1,admin", "2,manager", "3,qyi" };//假设这是第一个文件
String[] s2 = new String[] { "SN222,admin", "SN33,manager","SN0982,qyi" };//第二个文件的内容
List<String> l = new ArrayList<String>();//比较组合后的结果集
for (int i = 0; i < s1length; i++) {//取第一文件的每一个对象与第二文件的每一个对象
String[] ss1 = s1[i]split(",");
for (int j = 0; j < s2length; j++) {
String[] ss2 = s2[j]split(",");
if(ss2[1]equals(ss1[1])){//根据用户名进行比较,如果相同的话就进行字符串拼接,然后放到结果集当中,
ladd(ss1[0]+","+ss2[0]+","+ss1[1]);
continue;//跳出内循环
}
}
}
for(String s : l){//打印结果集(可以在这里将结果集写入到新的文件当中去)
Systemoutprintln(s);
}
java中编码:URLEncoderencode(strUri,"utf-8");
java中解码码:URLDecoderdecode(strUri,"utf-8");
java编码和解码
流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,
构造器有如:
InputStreamReader(InputStream in, String charsetName)
创建使用指定字符集的 InputStreamReader。
OutputStreamWriter(OutputStream out, String charsetName)
创建使用指定字符集的 OutputStreamWriter。
处理字符串编码问题:
重新对获取的字符串进行编码:Byte[] bytes = strgetBytes(String encodeCharsetNam);
重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);
一般结合使用:str = new String(strgetBytes(String encodeCharsetName),String decodeCharsetName);
例如:resultName=new String(usernamegetBytes("ISO-8859-1"),"UTF-8");
还可以加入判断:
if(!CharsetforName("gbk")newEncoder()canEncode(str)){str = new Strin(strgetBytes("ISO-8859-1"),"UTF-8");}else{str = new String(strgetBytes("ISO-8859-1"),"gbk");}
处理请求参数传递编码问题:
java中编码:URLEncoderencode(strUri,"utf-8");
java中解码码:URLDecoderdecode(strUri,"utf-8");
js中编码:encodeURIComponent(strUri);encodeURI(strUri);escape(str);
js中解码:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);
补充概念:
URI组件:主机、端口、路径、查询参数、片段等。
URI组件分隔符::/#&[]@,冒号用于分隔协议和主机,/用于分隔主机和 路径,用于分隔路径和查询参数,&用于分隔多个查询参数等。
URI中的不安全字符或保留字符: ! ‘ ( ) ; : @ & = + $ , / # [ ] 他们具有特殊作用,例如上面的分隔作用。
URI允许出现的字符:只允许包含英文字母(a-zA-Z)、数字(0-9)、-_~4个特殊字符以及所有保留字符,其他字符均需要经过编码之后才能出现在Url中,比如使用保留字符的原意,而不是特殊作用。
js向java/jsp的编码与解码:
js中编码:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));
java/jsp中解码: javanetURLDecoderdecode(strUri,"UTF-8");
js中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码。
然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码。
File in = new File(args[0]);
InputStreamReader r = new InputStreamReader(new FileInputStream(in));
Systemoutprintln(rgetEncoding());
以上就是关于java处理txt文件全部的内容,包括:java处理txt文件、java中编码与解码分别指什么、java 获取 file 的编码(utf-8或者gbk)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)