本文整理汇总了C#中System.IO.StreamReader.TryReadLine方法的典型用法代码示例。如果您正苦于以下问题:C# StreamReader.TryReadLine方法的具体用法?C# StreamReader.TryReadLine怎么用?C# StreamReader.TryReadLine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.StreamReader
的用法示例。
在下文中一共展示了StreamReader.TryReadLine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WordNetEngine
/// <summary>
/// Constructor
/// </summary>
/// <param name="wordNetDirectory">Path to WorNet directory (the one with the data and index files in it)</param>
/// <param name="inMemory">Whether or not to store all data in memory. In-memory storage requires quite a bit of space
/// but it is also very quick. The alternative (false) will cause the data to be searched on-disk with an efficient
/// binary search algorithm.</param>
public WordNetEngine(string wordNetDirectory, bool inMemory)
{
_wordNetDirectory = wordNetDirectory;
_inMemory = inMemory;
_posIndexWordSearchStream = null;
_posSynSetDataFile = null;
if (!System.IO.Directory.Exists(_wordNetDirectory))
throw new DirectoryNotFoundException("Отсутствует WordNet директория: " + _wordNetDirectory);
// get data and index paths
string[] dataPaths = new string[]
{
Path.Combine(_wordNetDirectory, "data.adj"),
Path.Combine(_wordNetDirectory, "data.adv"),
Path.Combine(_wordNetDirectory, "data.noun"),
Path.Combine(_wordNetDirectory, "data.verb")
};
string[] indexPaths = new string[]
{
Path.Combine(_wordNetDirectory, "index.adj"),
Path.Combine(_wordNetDirectory, "index.adv"),
Path.Combine(_wordNetDirectory, "index.noun"),
Path.Combine(_wordNetDirectory, "index.verb")
};
// make sure all files exist
foreach (string path in dataPaths.Union(indexPaths))
if (!System.IO.File.Exists(path))
throw new FileNotFoundException("Failed to find WordNet file: " + path);
#region index file sorting
string sortFlagPath = Path.Combine(_wordNetDirectory, ".sorted_for_dot_net");
if (!System.IO.File.Exists(sortFlagPath))
{
/* make sure the index files are sorted according to the current sort order. the index files in the
* wordnet distribution are sorted in the order needed for (presumably) the java api, which uses
* a different sort order than the .net runtime. thus, unless we resort the lines in the index
* files, we won't be able to do a proper binary search over the data. */
foreach (string indexPath in indexPaths)
{
// create temporary file for sorted lines
string tempPath = Path.GetTempFileName();
StreamWriter tempFile = new StreamWriter(tempPath);
// get number of words (lines) in file
int numWords = 0;
StreamReader indexFile = new StreamReader(indexPath);
string line;
while (indexFile.TryReadLine(out line))
if (!line.StartsWith(" "))
++numWords;
// get lines in file, sorted by first column (i.e., the word)
Dictionary<string, string> wordLine = new Dictionary<string, string>(numWords);
indexFile = new StreamReader(indexPath);
while (indexFile.TryReadLine(out line))
// write header lines to temp file immediately
if (line.StartsWith(" "))
tempFile.WriteLine(line);
else
{
// trim useless blank spaces from line and map line to first column
line = line.Trim();
wordLine.Add(line.Substring(0, line.IndexOf(' ')), line);
}
// get sorted words
List<string> sortedWords = new List<string>(wordLine.Count);
sortedWords.AddRange(wordLine.Keys);
sortedWords.Sort();
// write lines sorted by word
foreach (string word in sortedWords)
tempFile.WriteLine(wordLine[word]);
tempFile.Close();
// replace original index file with properly sorted one
System.IO.File.Delete(indexPath);
System.IO.File.Move(tempPath, indexPath);
}
// create flag file, indicating that we've sorted the data
StreamWriter sortFlagFile = new StreamWriter(sortFlagPath);
sortFlagFile.WriteLine("This file serves no purpose other than to indicate that the WordNet distribution data in the current directory has been sorted for use by the .NET API.");
sortFlagFile.Close();
}
#endregion
#region engine init
if (inMemory)
//.........这里部分代码省略.........
示例2: GetPerClassWeights
private Dictionary<int, float> GetPerClassWeights(StreamReader trainingInstancesReader)
{
Dictionary<int, int> classCount = new Dictionary<int, int>();
string line;
while (trainingInstancesReader.TryReadLine(out line))
{
int firstSpace = line.IndexOf(' ');
if (firstSpace == -1)
firstSpace = line.Length;
int classNum = int.Parse(line.Substring(0, firstSpace));
classCount.EnsureContainsKey(classNum, typeof(int));
classCount[classNum]++;
}
Dictionary<int, float> classWeight = new Dictionary<int, float>();
int total = classCount.Values.Sum();
foreach (int classNum in classCount.Keys)
if (_libLinear.GetUnmappedLabel(classNum.ToString()) != PointPrediction.NullLabel)
classWeight.Add(classNum, (total - classCount[classNum]) / (float)classCount[classNum]);
return classWeight;
}