如何在 java 中获取流写入器的长度
How to get length of a stream writer in java
在 java 中是否有任何等效于以下用于获取流长度的 c# 代码的功能。
StreamWriter.BaseStream.Length
我在互联网上搜索过,也检查了 "BufferredWriter"、"OutputStreamWriter" 和 "FileOutputStream" 的属性,但我没有找到任何东西。任何信息表示赞赏。
非常感谢。
一个OutputStream
终于有了你写入流的内容的长度。
最后我不得不使用 File.length() 属性 因为我发现没有办法像 C# 那样从流中获取长度。
这是如何完成的:
注意(使用标志等)流与哪个文件关联。
当您需要流的长度时,只需为您与流关联的文件获取 File.Length,如下所示。
为什么我需要检查长度是为了防止写入超过定义的最大长度的文件。
String sFilePath = this.m_sLogFolderPath + File.separator;
if(this.m_File2Active == true)
{
sFilePath += Def.DEF_FILE2;
}
else
{
sFilePath += Def.DEF_FILE1;
}
File file = new File(sFilePath);
if(file.length() > this.m_lMaxSize)
{
this.m_bwWriter.flush();
this.m_bwWriter.close();
this.m_bwWriter = null;
sFilePath = this.m_sLogFolderPath + File.separator;
if (this.m_File2Active == true)
{
sFilePath += Def.DEF_FILE1;
this.m_File2Active = false;
}
else
{
sFilePath += Def.DEF_FILE2;
this.m_File2Active = true;
}
this.m_bwWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(sFilePath, true), Def.DEF_ENCODING_UTF8));
}
在 java 中是否有任何等效于以下用于获取流长度的 c# 代码的功能。
StreamWriter.BaseStream.Length
我在互联网上搜索过,也检查了 "BufferredWriter"、"OutputStreamWriter" 和 "FileOutputStream" 的属性,但我没有找到任何东西。任何信息表示赞赏。
非常感谢。
一个OutputStream
终于有了你写入流的内容的长度。
最后我不得不使用 File.length() 属性 因为我发现没有办法像 C# 那样从流中获取长度。
这是如何完成的:
注意(使用标志等)流与哪个文件关联。
当您需要流的长度时,只需为您与流关联的文件获取 File.Length,如下所示。
为什么我需要检查长度是为了防止写入超过定义的最大长度的文件。
String sFilePath = this.m_sLogFolderPath + File.separator;
if(this.m_File2Active == true)
{
sFilePath += Def.DEF_FILE2;
}
else
{
sFilePath += Def.DEF_FILE1;
}
File file = new File(sFilePath);
if(file.length() > this.m_lMaxSize)
{
this.m_bwWriter.flush();
this.m_bwWriter.close();
this.m_bwWriter = null;
sFilePath = this.m_sLogFolderPath + File.separator;
if (this.m_File2Active == true)
{
sFilePath += Def.DEF_FILE1;
this.m_File2Active = false;
}
else
{
sFilePath += Def.DEF_FILE2;
this.m_File2Active = true;
}
this.m_bwWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(sFilePath, true), Def.DEF_ENCODING_UTF8));
}