Как сохранить строку в текстовом файле с помощью Java?

Была проблема, что я не мог решить, как разбирать multipart / form-data из request. QueryDict(request.body) не помог мне.

Итак, я нашел решение для меня. Я начал использовать это:

from django.http.multipartparser import MultiPartParser

Вы можете получить данные из request, например:

MultiPartParser(request.META, request, request.upload_handlers).parse()
650
задан Tshepang 1 July 2014 в 06:12
поделиться

7 ответов

Если вы просто выводите текст, а не какие-либо двоичные данные, следующее будет работать:

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.

704
ответ дан 22 November 2019 в 21:44
поделиться

Лучше закрыть записывающий / выходной поток в блоке finally, на случай, если что-то случится

finally{
   if(writer != null){
     try{
        writer.flush();
        writer.close();
     }
     catch(IOException ioe){
         ioe.printStackTrace();
     }
   }
}
3
ответ дан 22 November 2019 в 21:44
поделиться

Вы можете использовать приведенный ниже код для изменения для записи вашего файла из любого класса или функции, обрабатывающей текст. Однако возникает вопрос, зачем миру нужен новый текстовый редактор ...

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();
        }
    }
}
22
ответ дан 22 November 2019 в 21:44
поделиться

Используйте FileUtils.writeStringToFile () из Apache Commons IO . Не нужно изобретать именно это колесо.

60
ответ дан 22 November 2019 в 21:44
поделиться

Я сделал нечто подобное в моем проекте. Использование 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)
    {
    }
}
78
ответ дан 22 November 2019 в 21:44
поделиться

Apache Commons IO содержит несколько отличных методов для этого, в частности FileUtils содержит следующий метод:

static void writeStringToFile(File file, String data) 

, который позволяет вам записывать текст в файл за один вызов метода:

FileUtils.writeStringToFile(new File("test.txt"), "Hello File");

Вы также можете рассмотреть возможность указания кодировки для файла.

237
ответ дан 22 November 2019 в 21:44
поделиться

Взгляните на API файлов Java

. Быстрый пример:

try (PrintStream out = new PrintStream(new FileOutputStream("filename.txt"))) {
    out.print(text);
}
91
ответ дан 22 November 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: