Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
Tệp xuất chứa:
{
Viết int vào tập tin văn bản sử dụng Writer
đâu là vấn đề? Cách viết int
vào tệp văn bản bằng cách sử dụng Writer
?
Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
Tệp xuất chứa:
{
Viết int vào tập tin văn bản sử dụng Writer
đâu là vấn đề? Cách viết int
vào tệp văn bản bằng cách sử dụng Writer
?
Bạn phải viết chuỗi ...
bạn có thể thử.
wr.write("123");
HOẶC
wr.write(new Integer(123).toString());
HOẶC
wr.write(String.valueOf(123));
123 = 0x7b = ascii mã cho {
, vì vậy bạn đang viết các nhân vật để các tập tin. Sử dụng phương thức toString()
để chuyển đổi giá trị thành chuỗi và xuất nó.
Vấn đề là Writer.write
được sử dụng để gửi một ký tự đơn cho đầu ra. Đó là chưa rõ lý do tại sao nó int
hơn char
, phải thừa nhận là - nó sẽ có ý nghĩa nếu bạn có thể sử dụng để gửi các ký tự không BMP, nhưng documentation trạng thái:
Viết một nhân vật duy nhất. Ký tự được ghi được chứa trong 16 bit có thứ tự thấp của giá trị số nguyên đã cho; 16 bit thứ tự cao được bỏ qua.
Trước tiên, bạn cần chuyển đổi số nguyên thành chuỗi.
int v = 123; // I'm assuming this is dynamic in reality
wr.write(String.valueOf(v));
Javadocs là bạn của bạn:
lớp Thuận tiện cho việc viết các file nhân vật.
}
là nhân vật có giá trị ASCII 123.
Nếu bạn muốn viết các đại diện văn bản của 123
đến tập tin này, bạn muốn làm:
wr.write(Integer.toString(123));
Đây là những gì bạn đang cố gắng. Xem này.
http://download.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write(int)
Đây là tên phương pháp trong im javadoc reffering đến, trong trường hợp nếu các liên kết không đưa bạn tự động.
public void write(int c)
throws IOException
Vì vậy, nhân vật ascii tương đương cho 123 là {
Cảm ơn
Tuy nhiên, một phương pháp:
wr.write(""+123); //immediately convert int to its String representation
hoặc
wr.write(""+i);
Nhưng tôi không biết, nó ảnh hưởng như thế nào sự khác biệt so với các phương pháp khác, nhưng nó đơn giản hơn một chút để viết. :)
PS: Xin lỗi vì tôi có thể là xấu tiếng Anh
Ngoài ra còn có một cách rất đơn giản để viết các số nguyên để nộp sử dụng FileWriter:
Writer wr = new FileWriter("123.txt");
wr.write(123 + "");
wr.close();
Các + "" concatenates các số nguyên với một chuỗi rỗng, do đó phân tích cú pháp số nguyên thành chuỗi. Rất dễ làm và nhớ.
Giúp tôi rất nhiều. Cảm ơn. – SpiderRico
Tôi đã có trải nghiệm tốt trong quá khứ với PrintStream
. PrintStream
thể được sử dụng theo hai cách (ít nhất)
PrintStream ps = new PrintStream("file_location.txt");
HOẶC
PrintStream ps = new PrintStream(new File("file_loc.txt"));
và viết, sử dụng:
ps.println("String text");
HOẶC
ps.println(Integer.parseInt(123));
Tại sao tôi phải làm cho int 123 một o loại bject của Integer? Java đã biết rằng đây là một giá trị int và do đó sẽ có thể dịch đó vào chuỗi? Whats sự khác biệt giữa Obj. của Integer và datatype của int? –
@AshwinGupta và bất kỳ ai khác tự hỏi, đó là vì phương thức 'wr.write (int)' không thực sự viết int, nó viết ký tự được biểu diễn bằng 'int' trong mã hóa được chỉ định (utf-8 nếu không được chỉ định). Vì vậy, các int được ánh xạ tới các ký tự khác, làm cho nó trở thành một đối tượng và nhận được chuỗi của nó buộc nó để viết số nguyên thực xuống, khác autoboxing hoặc unboxing sẽ chuyển nó trở lại một int nguyên thủy. Xem: https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html#write(int) – matrixanomaly