gpt4 book ai didi

java - 如何让这个缓冲写入器一次写入一行? java

转载 作者:行者123 更新时间:2023-12-02 04:20:52 24 4
gpt4 key购买 nike

我正在创建一个小程序,它将修改保存在程序文件中的驱动程序字母。该方法的工作原理是它正确定位文件并正确修改驱动器号。

但是,当我在更改文件后打开该文件时,所有目录列表都在一行上,但每行需要 1 个目录。我尝试将每一行保存到数组列表中,然后像这样打印它们,但这似乎对我不起作用,所以想知道是否有人可以提供帮助?

非常感谢。

附注一直在尝试让它工作,现在还遇到了另一个问题,它现在将它们全部打印到一行中,但之间有空格,例如:

S:\数据\SAGE\

public class copy
{

private String newDriveLetter;
private String line;
private Path[]sageFolders;
private FileReader fileReader;
private BufferedReader bufferedReader;
private FileWriter fileWriter;
private BufferedWriter bufferedWriter;
private List<String> lines = new ArrayList<String>();



public void scanFiles() throws IOException{

try
{
System.out.println("Sage 2015 is Installed on this machine");
File companyFile = new File(sageFolders[8] + "\\COMPANY");
fileReader = new FileReader(companyFile);
bufferedReader = new BufferedReader(fileReader);

while((line = bufferedReader.readLine()) != null)
{
if(line.contains("F"))
{
line = line.replace("F:\\","S:\\");
lines.add(line);

}

}
//Close the Readers
fileReader.close();
bufferedReader.close();

fileWriter = new FileWriter(companyFile);
bufferedWriter = new BufferedWriter(fileWriter);

for(String s : lines)
{
bufferedWriter.write(s);
}

bufferedWriter.flush();
bufferedWriter.close();

}
catch(FileNotFoundException e)
{
System.out.println("File not Found: Moving onto next Version");
}

}

最佳答案

问题是 readLine()读取整行,然后丢弃行结尾。来自文档:

A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached

因此您必须再次将其添加回来,可能使用您平台的首选行结尾:

bufferedWriter.write(String.format("%s%n", s);

此处 %sString%n 是与平台相关的行结尾。

或者,正如 Ransom Briggs 所指出的,您可以使用 newline()newLine() 更容易阅读并且性能会稍微好一些:

bufferedWriter.write(s);
bufferedWriter.newLine();

我保留了 String.format 方法,因为它是向字符串添加换行符的更通用方法。

关于java - 如何让这个缓冲写入器一次写入一行? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com