2014-12-09 2 views
-1

У меня возникают проблемы при записи в файл с помощью PrintWriter. Ниже мой код:Необычный результат при записи в файл

String abc = request.getParameter("textAreaField"); //String is "a b c" (with spaces) 
String fileA = dir + "/A"; 
PrintWriter fileWriterA = new PrintWriter(new FileOutputStream(fileA,true)); 
fileWriterA.println(abc); 
fileWriterA.close(); 

Проблема, которую я имею здесь во время записи в файл «A» в директории «реж» только «» из строки а будут записаны, а остальное после пространства не написано. Строка abc здесь, в коде, поступает из textarea в html, и у меня есть код выше в моем сервлете. Я не могу понять, почему он не будет писать строку с пробелами в файл. Думаю, так и должно быть. Я также проверил печать String abc и печатает строку «a b c» (с пробелами). Но он не будет печатать это для файла. Есть ли проблема с моим кодом? Любая помощь будет оценена по достоинству.

Заранее спасибо.

+0

Вы не передает его правильно из текстовой области * до * сервлета. Идея, что 'PrintWriter' отвечает за это, смехотворна. – EJP

+0

Вы проверили, если abc содержит ожидаемую строку? Я пробовал его с помощью исправления, и он отлично работает. – Jens

+0

@EJP: Я никогда не обвинял PrintWriter в том, что он не писал его правильно. Если вы заметили, что я сказал: «Есть ли проблемы с моим кодом?». Также в отношении того, проверял ли я свою строку, правильно ли она передается, это также есть в моем вопросе «Я также проверил печать String abc и печатает строку« a b c »(с пробелами)». – Hemang

ответ

0

Я использовал ваш код и написал сервлет. Он работает абсолютно нормально. Вот код.

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    System.out.println(request.getParameter("ta")); 
    String abc = request.getParameter("ta"); 
    String fileA = "/A"; 
    PrintWriter fileWriterA = new PrintWriter(new FileOutputStream(fileA,true)); 
    fileWriterA.println(abc); 
    fileWriterA.close(); 
} 

и вот СПЯ:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form action="Test"> 
<textarea rows="20" cols="20" name="ta"></textarea><!-- having value -- check some spaces --> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html>