将文本文件修剪为所需的长度[closed]

问题描述

|                                                                                                                       

解决方法

这将读取所需的长度,然后将其修剪到最后一个换行符:
 protected static string GetString(string filename,int contentLength)
    {
        string retString;
        using (FileStream fs = new FileStream(filename,FileMode.Open))
        {
            int length = (fs.Length < contentLength ? (int)fs.Length : contentLength);
            byte[] b = new byte[length];
            fs.Read(b,contentLength);
            string str = System.Text.ASCIIEncoding.UTF8.GetString(b);
            if (str.LastIndexOf(\"\\r\") > 0)
                retString = str.Substring(0,str.LastIndexOf(\"\\r\"));
            else
                retString = str;
        }
        return retString;
    }
然后像这样调用它以写入新文件:
string filename = \"c:\\\\test.txt\";
File.WriteAllText(filename,GetString(filename,100));
    ,
    public static void TrimTextFile(string fileName,long sizeInByte)
    {
        using(FileStream fs = new FileStream(fileName,FileMode.Open))
        {
            fs.Position = sizeInByte;
            int byteRead = 0;
            while ((byteRead = fs.ReadByte()) >= 0)
            {
                if(byteRead == 13)
                {
                    fs.SetLength(fs.Position - 1);
                    break;

                }
            }
        }
    }
    ,此示例代码将继续读取行,并将其再次写到另一个文件中,直到指定的最大文件大小。它将每个读取行转换为所需的字符编码,以确定其长度(以字节为单位)。 代码编写时没有进行编译检查。
var input = new FileStream(inputFilename,FileMode.Open);
var output = new FileStream(outputFilename,FileMode.Create);
var reader = new StreamReader(input);
var writer = new BinaryWriter(output);
var data = reader.ReadLine();
var maxSize = 10000;
var totalLength = 0;
while (!string.IsNullOrWhitespace(data) && totalLength < maxSize)
{
  var bytes = System.Text.UnicodeEncoding.GetBytes(data);
  totalLength += bytes.GetLength(0);
  if totalLength < maxSize) writer.Write(bytes);
  data = reader.ReadLine();
}
writer.Flush();
writer.Close();
reader.Close();
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...