我正在使用BufferedWriter
将字符串写入这样的文件:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
String myname = "JOHN DOE MAXWELL";
String myotherName = "MELCHIZEDEK NEBUCHARDINEZZAR";
String mylocation = "SOUTH EAST";
String myotherlocation = "SOUTH WEST";
File f = new File("MyFile.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(myname + " " + mylocation);
bw.newLine();
bw.write(myothername + " " + myotherlocation);
bw.close();
}
}
我需要写mylocation
,这样无论字符串myname
的长度如何,mylocation
的起始位置都不会受到影响。请协助。
我的输出应该是:
JOHN DOE MAXWELL SOUTH EAST
MELCHIZEDEK NEBUCHARDI SOUTH WEST
答案 0 :(得分:3)
你可以做到
bw.write(String.format("%-20s%s%n", myName, myLocation));
您可以使用PrintWriter来使用同时执行这两种操作的printf()。
e.g。使用PrintWriter
pw.printf("%-" + myNameWidth + "s%s%n", myName, myLocation);
答案 1 :(得分:1)
这样无论字符串myname的长度如何,一开始 mylocation的位置不会受到影响
我能想到的唯一情况是每个人都在新的一行。
您必须指定不再保证此顺序的最大容忍长度,实际上应该在读取文件时进行格式化,此时您可以确定myname的最长变量并根据它来格式化输出。
答案 2 :(得分:1)
试试这个
bw.write(myname + " ".substring(0, 30) + " " + mylocation);
答案 3 :(得分:1)