Была проблема, что я не мог решить, как разбирать multipart / form-data из request
. QueryDict(request.body)
не помог мне.
Итак, я нашел решение для меня. Я начал использовать это:
from django.http.multipartparser import MultiPartParser
Вы можете получить данные из request
, например:
MultiPartParser(request.META, request, request.upload_handlers).parse()
Если вы просто выводите текст, а не какие-либо двоичные данные, следующее будет работать:
PrintWriter out = new PrintWriter("filename.txt");
Тогда , напишите в него свою строку, как и в любой выходной поток:
out.println(text);
Как всегда, вам понадобится обработка исключений. Не забудьте вызвать out.close ()
, когда закончите писать.
Если вы используете Java 7 или новее, вы можете использовать оператор " try-with-resources ] ", который автоматически закроет ваш PrintStream
, когда вы закончите с ним (т.е. выйдете из блока), например:
try (PrintWriter out = new PrintWriter("filename.txt")) {
out.println(text);
}
Вам все равно нужно будет явно выбросить java.io.
Лучше закрыть записывающий / выходной поток в блоке finally, на случай, если что-то случится
finally{
if(writer != null){
try{
writer.flush();
writer.close();
}
catch(IOException ioe){
ioe.printStackTrace();
}
}
}
Вы можете использовать приведенный ниже код для изменения для записи вашего файла из любого класса или функции, обрабатывающей текст. Однако возникает вопрос, зачем миру нужен новый текстовый редактор ...
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
String str = "SomeMoreTextIsHere";
File newTextFile = new File("C:/thetextfile.txt");
FileWriter fw = new FileWriter(newTextFile);
fw.write(str);
fw.close();
} catch (IOException iox) {
//do stuff with exception
iox.printStackTrace();
}
}
}
Используйте FileUtils.writeStringToFile ()
из Apache Commons IO . Не нужно изобретать именно это колесо.
Я сделал нечто подобное в моем проекте. Использование FileWriter упростит часть вашей работы. И здесь вы можете найти хороший учебник .
BufferedWriter writer = null;
try
{
writer = new BufferedWriter( new FileWriter( yourfilename));
writer.write( yourstring);
}
catch ( IOException e)
{
}
finally
{
try
{
if ( writer != null)
writer.close( );
}
catch ( IOException e)
{
}
}
Apache Commons IO содержит несколько отличных методов для этого, в частности FileUtils содержит следующий метод:
static void writeStringToFile(File file, String data)
, который позволяет вам записывать текст в файл за один вызов метода:
FileUtils.writeStringToFile(new File("test.txt"), "Hello File");
Вы также можете рассмотреть возможность указания кодировки для файла.
Взгляните на API файлов Java
. Быстрый пример:
try (PrintStream out = new PrintStream(new FileOutputStream("filename.txt"))) {
out.print(text);
}