Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
Выходной файл содержит:
{
Где проблема? Как написать int
в текстовый файл с помощью Writer
?
Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
Выходной файл содержит:
{
Где проблема? Как написать int
в текстовый файл с помощью Writer
?
Вам нужно написать String...
вы можете попробовать.
wr.write("123");
ИЛИ
wr.write(new Integer(123).toString());
ИЛИ
wr.write( String.valueOf(123) );
Существует также очень простой способ записи целых чисел в файл с помощью FileWriter:
Writer wr = new FileWriter("123.txt");
wr.write(123 + "");
wr.close();
"+" "объединяет целые числа с пустой строкой, таким образом анализируя целое число на строку. Очень легко сделать и запомнить.
123 = 0x7b = код ascii для {
, поэтому вы пишете символ в файл.
Используйте метод toString()
, чтобы преобразовать значение в строку и вывести его.
Javadocs - ваш друг:
Класс удобства для записи файлов символов.
}
- это символ с значением ASCII 123.
Если вы хотите записать текстовое представление 123
в этот файл, вы должны сделать:
wr.write(Integer.toString(123));
Проблема заключается в том, что Writer.write
используется для отправки одиночного символа на вывод. Непонятно, почему он int
, а не char
, правда, было бы разумно, если бы вы могли использовать это для отправки символов без BMP, но документация:
Записывает один символ. Символ, который должен быть записан, содержится в 16 младших битах заданного целочисленного значения; 16 старших бит игнорируются.
Вам нужно сначала преобразовать целое число в строку, например.
int v = 123; // I'm assuming this is dynamic in reality
wr.write(String.valueOf(v));
У меня был хороший опыт в прошлом с PrintStream
.
PrintStream
может использоваться двумя способами (по крайней мере)
PrintStream ps = new PrintStream("file_location.txt");
ИЛИ
PrintStream ps = new PrintStream(new File("file_loc.txt"));
и написать, используйте:
ps.println("String text");
ИЛИ
ps.println(Integer.parseInt(123));
Это то, что вы пытаетесь. См. Это.
http://download.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write(int)
Это имя метода в javadoc im reffering to, если ссылка не принимает вас автоматически.
public void write(int c)
throws IOException
Итак, эквивалентный символ ascii для 123 равен {
Спасибо
Еще один метод:
wr.write(""+123); //immediately convert int to its String representation
или
wr.write(""+i);
Но я не знаю, как это влияет на производительность по сравнению с другими методами, но немного проще писать.:)
PS: Извините за мой может быть плохой английский