IO 101: Quais são as principais diferenças entre TextWriter, FileStream e StreamWriter?

Deixe-me primeiro pedir desculpas se esta pergunta pode parecer um pouco amadora para os programadores experientes entre vocês, a questão é que eu tenho tido muitos argumentos sobre isso no trabalho, então eu realmente quero entender isso e é basicamente por isso que eu estou confiando na comunidade stackoverflow para resolver isso de uma vez por todas :)

Então, por um lado, de acordo com o MSDN, temos:

Classe TextWriter

Representa um escritor que pode escrever uma série sequencial de caracteres. Esta aula é abstrata.

Classe FileStream

Expõe um Stream em torno de um arquivo, suportando operações de leitura e gravação síncronas e assíncronas.

Classe StreamWriter

Implementa um TextWriter para gravar caracteres em um fluxo em uma codificação específica.

Por outro lado, é evidente que todos pertencem ao System.IO, mas dado que os exemplos do MSDN misturam alguns deles, eu ainda não estou atingindo o desejado momento do a-ha.

Qualquer comentário seria mais do que apreciado, muito obrigado antecipadamente!

questionAnswers(5)

yourAnswerToTheQuestion