Как получить длину потокового писателя в Java - PullRequest
0 голосов
/ 18 мая 2018

В Java есть какая-либо функциональность, эквивалентная приведенному ниже коду c # для получения длины потока.

StreamWriter.BaseStream.Length

Я искал в Интернете, а также я проверил свойства "BufferredWriter", "OutputStreamWriter" и "FileOutputStream"но я ничего не нашел.Любая информация приветствуется.

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Наконец, мне пришлось использовать свойство 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));
                }
0 голосов
/ 18 мая 2018

У OutputStream наконец есть длина контента, который ВЫ записывает в поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...