텍스트 파일 작성을위한 코드 또는 종속 jar 파일은 GWT 프로젝트에서 사용할 수 없지만 cmd 명령을 실행하기위한 코드는 사용할 수 있습니다.
트릭을 사용하면 문제를 피할 수 있습니다. commons-codec-1.10을 제거하고 빌드 경로에 추가하십시오. CMDUtils.java 온라인 복사하고 '공유'패키지에 넣을 수있는 다음 코드를 추가 : 다음 ABCService.java 및 ABCServiceAsync.java 및 해당
public static StringBuilder execute(String... commands) {
StringBuilder result = new StringBuilder();
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(new String[] { "cmd" });
// put a BufferedReader
InputStream inputstream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputstream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
PrintWriter stdin = new PrintWriter(proc.getOutputStream());
for (String command : commands) {
stdin.println(command);
}
stdin.close();
// MUST read the output even though we don't want to print it,
// else waitFor() may fail.
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
result.append('\n');
}
} catch (IOException e) {
System.err.println(e);
}
return result;
}
추가 추가 :
public class ABCServiceImpl extends RemoteServiceServlet implements ABCService {
public String sendText(String text) throws IllegalArgumentException {
text= Base64.encodeBase64String(text.getBytes());
final String command = "java -Dfile.encoding=UTF8 -jar \"D:\\abc.jar\" " + text;
CMDUtils.execute(command);
return "";
}
그리고 abc.jar은 진입 점과 같은 주요 방법이 포함되어있는 실행 항아리로 만들어집니다 :이 시도
public static final String TEXT_PATH = "D:\\texts-from-user.txt";
public static void main(String[] args) throws IOException {
String text = args[0];
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(TEXT_PATH, true));
text = new String(Base64.decodeBase64(text));
writer.write("\n" + text);
writer.close();
}
을 그리고 그것은 GWT p를 위해 쓰는 텍스트 파일을 성공적으로 작동 방아쇠.
출처
2016-06-08 01:57:44
Tom
나는 나의 파일이 1MB를 초과하지 않을 것이라고 확신한다. 그것은 10 쌍 (String name, int score)이다. 그래서 당신이 선호하는 것이 나를 위해 유용할까요? 그리고 이것에 대한 샘플을 제공해 주시겠습니까? – Dipak
귀하의 필요에 따라 :이 옵션들 중 어느 것도 선택의 여지가 없습니다. 그것들을 10 개의 개별 엔티티 또는 String 속성을 가진 하나의 엔티티로 저장할 수 있습니다. App Engine에 데이터를 저장하는 방법에 대해 읽어야합니다. https://developers.google.com/appengine/docs/java/datastore/overview –
배열 또는 목록 문자열이있는 하나의 엔티티를 선호합니다. – Dipak