[在线等]求救,读取文本文件时,readLine认为“回车符”是一行结束的问题 本帖最后由 kerafan 于 2013-08-14 15:19:40 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看来你是使用split的时候出的问题吧!你看下这样:public static void main(String[] args) { StringBuffer sub=new StringBuffer(); BufferedReader br=null; try { br=new BufferedReader(new FileReader(new File("f:/1.txt"))); String line=null; while((line=br.readLine())!=null) { sub.append(line+""); } String r=sub.toString(); String [] result=r.split("\\|"); for (int i = 0; i < result.length; i++) { System.out.println(result[i]); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } String line = null;String result=""; while((line = br.readLine()) != null) { System.out.println(line); result+=line; }楼主是不是要一行一行的解析? 如果要一行一行的解析 那肯定没办法跳过换行符了 因为java可不认识到底哪个换行符才是你认为的真的换行符 建议楼主利用read方法自己写一个readLine方法,此方法读到回车符便跳过,遇到换行符或者回车符后紧跟着换行符的情况则返回。这样的话,读你自己的文件的时候就不会出问题了。 我是想要一行一行的解析,每次都可以分割出三个字段来,假如字段里面有【回车符】,也要包含在字段里。比如下面的例子,分割之后三个字段内容如下:一行记录:030105010500154859_01|小港新村干#06杆台架[回车符]|02[换行符]分割后:string1 = 030105010500154859_01string2 = 小港新村干#06杆台架[回车符]string3 = 02 java刚学,不大会写啊,麻烦帮忙下一个,着急用 能不能把你的文件发一份过来,[email protected] 已经发送,非常感谢!能不能把你的文件发一份过来,[email protected] 我这里的行结尾符号是\0,我这么搞的Socket socket = new Socket("xxx", 8888); socket.setTcpNoDelay(true); BufferedReader bReader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")); bWriter.write(protocol.toString()); bWriter.flush(); StringBuffer sb = new StringBuffer(); int c = 0; while ((c = bReader.read()) != '\0' && c != -1) { sb.append((char) c); } bWriter.close(); bReader.close(); socket.close(); 能不能把你的文件发一份过来,[email protected]存的时候把 回车换行符 用其它符号转换, 读的时候再转回来。类似xml的" " = 构建JTree的递归算法 网页匹配小问题 初学DOM4J的问题 jfreechart的同仁进来发表下意见 急!!!请问在WIN98里怎么设置JDK的环境变量? 请问:在数据库中读取数据后,java有没有象delphi或vb提供的现成的表格控件来显示呢?来者有分。 放假散分!!!!!! Java里面可以镶嵌HTML语句吗?支持marquee这个标记吗?100分送 关于reflect的问题 方法的调用问题,有一个可运行的例子,请进 求教 java连接oracle 执行问题 【源码分享】Java扫雷源码
你看下这样:public static void main(String[] args) {
StringBuffer sub=new StringBuffer();
BufferedReader br=null;
try {
br=new BufferedReader(new FileReader(new File("f:/1.txt")));
String line=null;
while((line=br.readLine())!=null)
{
sub.append(line+"");
}
String r=sub.toString();
String [] result=r.split("\\|");
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String result="";
while((line = br.readLine()) != null) {
System.out.println(line);
result+=line;
}楼主是不是要一行一行的解析? 如果要一行一行的解析 那肯定没办法跳过换行符了 因为java可不认识到底哪个换行符才是你认为的真的换行符
string1 = 030105010500154859_01
string2 = 小港新村干#06杆台架[回车符]
string3 = 02
能不能把你的文件发一份过来,[email protected]
socket.setTcpNoDelay(true);
BufferedReader bReader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));
bWriter.write(protocol.toString());
bWriter.flush();
StringBuffer sb = new StringBuffer();
int c = 0;
while ((c = bReader.read()) != '\0' && c != -1) {
sb.append((char) c);
}
bWriter.close();
bReader.close();
socket.close();
存的时候把 回车换行符 用其它符号转换, 读的时候再转回来。类似xml的" " =