我正在创建一个应用程序,它需要为每个用户编写一个文件(采用JSON格式).
该应用程序成功创建了该文件,但它是空的.在代码中我添加了一个更精细的输出,以查看转换后的JSON字符串是什么样的,我注意到它已完成(它包含所有内容,因此转换正常).但该字符串不存在于文件中.
//create a new FileWriter C:/.../42.guser
FileWriter writer = null;
//for every User
for(int i=0; i<users.size(); i++) {
try {
File f = new File(Users.usersDir.getPath()+"/"+i+".guser");
//Create new file
f.createNewFile();
writer = new FileWriter(f);
//convert to json and write to file. Here we get the object with KEY = keys[i].
String stringedUsr = gson.toJson(users.get(keys[i]));
logger.finer("Converted user: \""+stringedUsr+"\""); //Output seems ok
//Write (NOT WORKING)
writer.write(stringedUsr);
logger.fine("Wrote updated user \""+keys[i]+"\" to file "+f.getCanonicalPath());
} catch (IOException e) {
FAILS++;
e.printStackTrace();
}
} …Run Code Online (Sandbox Code Playgroud) 我是Java的初学者,我想在台式PC上创建服务器(运行外部IP地址,已验证),并在带有CM11的Samsung Galaxy S3上创建客户端。在服务器上:我在端口6666上创建了一个ServerSocket(不要问为什么),并在while()中创建了Socket(server = .accept();)。
在客户端上:我创建了一个Socket客户端(client = new Socket(HostName,port);),并将其放置在try {} catch(){}中:如果连接失败,应用程序将显示在TextView“服务器已关闭进行维护”。
错误:我什至无法连接到我的服务器,但是外部IP可以通过终端仿真器进行ping操作...我不知道为什么。我的客户端,服务器上是否有错误,还是我需要在清单(android)中添加权限?(应用运行时,Android不会在控制台中返回任何错误)-
任何的想法?这就是为什么我不想显示应用程序的名称。
服务器:
package <HIDDEN>;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class MainClass {
public static final String version ="0.1A";
public static final int port = 6666;
private static ServerSocket Service;
private static DataInputStream fromClient;
private static DataOutputStream toClient;
private static Socket server;
static InetAddress Host;
public static void main(String[] args) {
System.out.println("Welcome to <HIDDEN>'s Server! Version ## "+version+" ##");
try { …Run Code Online (Sandbox Code Playgroud)