当我从Java客户端发送数据回到我的Android应用程序时,我遇到了问题 它事先工作但现在我无法弄清楚如何恢复我的问题 返回的数据(在本例中为参考编号)在数据字符串之前总是有一些反转的问号。
用于连接服务器的类
public class ClientConnection {
private PrintWriter out = null;
private BufferedReader in = null;
private Socket server = null;
public ClientConnection() throws IOException {
//System.out.println("Connecting to server.");
server = new Socket("localhost",3050);
InputStream is = server.getInputStream();
in = new BufferedReader(new InputStreamReader(is));
OutputStream os = server.getOutputStream();
out = new PrintWriter(os,true);
}
public String addBooking(String[] inputData) {
out.println(inputData[0]);
out.println(inputData[1]);
out.println(inputData[2]);
out.println(inputData[3]);
out.println(inputData[4]);
out.println(inputData[5]);
out.println(inputData[6]);
out.println(inputData[7]);
try {
String ref = in.readLine();
System.out.println(ref);
return ref;
} catch (IOException e) {
return "Error";
}
}
服务器端
public RequestHandler(Socket socket) {
client = socket;
try {
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
p = new PrintWriter(client.getOutputStream(), true);
objs = new ObjectOutputStream(client.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
private void addBooking() throws IOException {
String[] data = new String[8];
for (int linecount= 0; linecount < data.length; ++linecount) {
data[linecount] = in.readLine();
System.out.println(data[linecount]);
}
sql = new SQLManager();
String refcode = sql.addBooking(data);
//Just returns a single number, has been checked.
System.out.println(refcode);
p.println(refcode);
sql.close();
}
我已经在它自己的普通java类中测试了客户端方法,并且参考号回来了,但是当它通过android应用程序收到时它总是在它前面有 。我有许多其他方法,无论数据类型是什么,都会发生同样的事情。我有一段时间没有改变addbooking方法但它开始表现出与我所有新方法相同的行为而没有对它做任何事情。
更奇怪的是,我的团队成员拥有与我的代码完全相同的版本,并且它适用于他们,我也尝试用他们的版本替换我的方法但是会出现相同的结果。
答案 0 :(得分:0)
没关系我弄清楚了,它似乎是windows和mac文本编辑器之间的空行差异。