Java输出编号行格式
我正在处理一个任务,要求请求一个文件名,然后获取该文件并将其输出到一个.txt文件中,该文件的行格式如下: [001] [002] 我已经拼凑了一段代码来让程序工作,但我似乎无法让它以要求的格式编写。任何帮助都将不胜感激 这是到目前为止我的代码Java输出编号行格式,java,io,Java,Io,我正在处理一个任务,要求请求一个文件名,然后获取该文件并将其输出到一个.txt文件中,该文件的行格式如下: [001] [002] 我已经拼凑了一段代码来让程序工作,但我似乎无法让它以要求的格式编写。任何帮助都将不胜感激 这是到目前为止我的代码 try { System.out.println("Enter your source code file name: "); Scanner scanner = new Scanner(System.in);
try {
System.out.println("Enter your source code file name: ");
Scanner scanner = new Scanner(System.in);
String file = scanner.nextLine();
in = new FileInputStream(file);
out = new FileOutputStream(file + ".txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} catch (IOException e) {
System.out.println("Error!");
}
您只需要一个计数器来计算行数:
BufferedReader in = new BufferedReader(new FileReader(fileName));
BufferedWriter out = new BufferedWriter(new FileWriter(fileName + '.txt');
String line;
while ((line = in.read()) != -1) {
counter++;
out.write(String.format(..., counter, line)+"\r\n");
}
有关
String.format()
方法的更多信息,请查看此您只需要一个计数器来计算行数:
BufferedReader in = new BufferedReader(new FileReader(fileName));
BufferedWriter out = new BufferedWriter(new FileWriter(fileName + '.txt');
String line;
while ((line = in.read()) != -1) {
counter++;
out.write(String.format(..., counter, line)+"\r\n");
}
有关
String.format()
方法的更多信息,请查看此尝试使用BufferedReader/BufferedWriter来更轻松地读写文本行,如下所示:
String txtName = "test";
String txtNumbered = "test1";
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtName+".txt")));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(txtNumbered+".txt")));
int count = 0;
String line = br.readLine();
while(line != null)
{
count++;
bw.write(count+" "+line+"\r\n");
line = br.readLine();
}
br.close();
bw.close();
}catch(IOException e)
{
System.out.println(e);
}
尝试使用BufferedReader/BufferedWriter来更轻松地读写文本行,如下所示:
String txtName = "test";
String txtNumbered = "test1";
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtName+".txt")));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(txtNumbered+".txt")));
int count = 0;
String line = br.readLine();
while(line != null)
{
count++;
bw.write(count+" "+line+"\r\n");
line = br.readLine();
}
br.close();
bw.close();
}catch(IOException e)
{
System.out.println(e);
}
您不应该同时读取和写入文件,最好先读取它,在内存中进行更改,然后将其写入file@Draken他们不是同一个文件…很好的一点,错过了附加的.txt。与其使用
FileInputStream
,不如使用BufferedReader
和FileReader
。这样就可以很容易地阅读句子。目前最大的问题是,你正在逐字逐行阅读,这既慢又难。如果输入文件的行数超过999行(小于10000行),那么如果编号以[0001]
开头,有更好的技术一次读取一整行,而不是您必须执行该工作?换句话说,是否需要前导0?不应同时读取和写入文件,最好先读取文件,在内存中进行更改,然后将其写入file@Draken他们不是同一个文件…很好的一点,错过了附加的.txt。与其使用FileInputStream
,不如使用BufferedReader
和FileReader
。这样就可以很容易地阅读句子。目前最大的问题是,你正在逐字逐行阅读,这既慢又难。如果输入文件的行数超过999行(小于10000行),那么如果编号以[0001]
开头,有更好的技术一次读取一整行,而不是您必须执行该工作?换句话说,是否需要开头的0?请注意不要提供OP的完整答案,记住这是一个家庭作业问题,因此他们确实需要做一些计算!那么我应该删除这个Answare吗?我是新来的,我会感谢你的指导。我想他们已经从前面的答案中找到了答案,尽管这有点不那么直观,因为他们强迫他们使用String.format()
(他们无论如何都应该学习)。保留您的答案,下次再考虑好吧,谢谢,伙计,下次我会考虑您的话。谢谢@theVoid,我已经为这个问题挣扎了两天了,我确实修改了您的代码以包含字符串。format()为了让计数器以正确的格式显示。请注意不要提供OP的完整答案,记住这是一个家庭作业问题,所以他们确实需要做一些计算!那么我应该删除这个Answare吗?我是新来的,我会感谢你的指导。我想他们已经从前面的答案中找到了答案,尽管这有点不那么直观,因为他们强迫他们使用String.format()
(他们无论如何都应该学习)。保留你的答案,下次再考虑好吧,谢谢,伙计,我下次会考虑你的话。谢谢@theVoid,我已经为这个问题挣扎了两天了,我修改了你的代码,加入了字符串.format(),让计数器以正确的格式显示。