[在线等]求救,读取文本文件时,readLine认为“回车符”是一行结束的问题
本帖最后由 kerafan 于 2013-08-14 15:19:40 编辑 我有个文件,里面有三个字段,用|分割,例如内容是:030105010500154859_01|小港新村干#06杆台架[回车符]|02[换行符]。
因为中间那个字段有个回车符,所以用BufferedReader的readLine方式,会读出两行来:
第一行:030105010500154859_01|小港新村干#06杆台架
第二行:|02
我本来是想读出成一个String,然后按照“|”分隔符分割成三个字段。现在不知道怎么做了?
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class UTest1 {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(new File("1.txt")));
String line = null;
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
try {
br.close();
} catch (IOException e1) {
}
}
}
}
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;
}
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();