我试图实现一个bufferedreader,以便将.txt文件,特别是Iliad转换为字符串。我已经测试了小文件,但它们已经有效,但较大的文件没有。当我尝试在while循环完成后打印fileString时,没有显示输出。这是我的代码。
String fileString = "";
String line = "";
char readChar;
BufferedReader br;
try {
br = new BufferedReader(new FileReader(inputFile));
while((line=br.readLine())!=null)
{
fileString = fileString + line;System.out.println(fileString);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}System.out.println(fileString);
答案 0 :(得分:2)
回想一下,字符串在java中是不可变的。这意味着您从namespace CIS.API.Student
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; set; }
services.AddSingleton(Configuration);
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors(x => x
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
app.UseMvc();
}
}
}
构建字符串的方式效率极低且资源成本高。
您可以使用StringBuilder或StringBuffer。在我的例子中,我使用StringBuilder,因为它似乎不需要担心同步。
+
试试这个。虽然,我不确定println函数是否能够打印整个字符串。
答案 1 :(得分:0)
你正在慢慢地进行字符串连接。非常缓慢的方式。使用StringBuffer
或StringBuilder
。
它与BufferedReader
无关,正如一个简单的测试所示:删除循环体中的代码。