C#读操作(字节/字符)Filestream、File、StreamReader

方法一:使用Filestream,将文本一次性全部转换为字节,之后转换为string显示在text中

OpenFileDialog fd = new OpenFileDialog();
            fd.Filter = "文本文件|*.txt";       //打开文件的类型
            if (fd.ShowDialog() == DialogResult.OK)
            {
                fn = fd.FileName;
                FileStream fs = new FileStream(fn, FileMode.Open, FileAccess.Read);
                int n = (int)fs.Length;
                byte[] b = new byte[n];
                int r = fs.Read(b, 0, n);
                textBox3.Text = Encoding.Default.GetString(b, 0, n);

方法二:使用Filestream,逐字节读取文本,后将字节转换为string显示在text中

FileStream fs = new FileStream(fn, FileMode.Open, FileAccess.Read);
                long n = fs.Length;
                byte[] b = new byte[n];
                int cnt, m;
                m = 0;
                cnt = fs.ReadByte();
                while (cnt != -1)
                {
                    b[m++] = Convert.ToByte(cnt);
                    cnt = fs.ReadByte();
                }textBox3.Text = Encoding.Default.GetString(b)

方法三:直接使用File的Read All Text 函数将文本文件内容全部读入text

textBox.Text = File.ReadAllText(fn, Encoding.Default);

方法四:使用StreamReader,将文本中的的内容逐行读入text

StreamReader sr = new StreamReader(fn, Encoding.Default);
                string line = sr.ReadLine();
                while (line != null)
                {
                    textBox.Text = textBox.Text + line + "\r\n";
                    line = sr.ReadLine();
                }

方法五:使用StreamReader中的ReadToEnd()函数,将文本中的内容全部读入text

StreamReader sr = new StreamReader(fn, Encoding.Default);
                textBox.Text = sr.ReadToEnd();

来源“https://blog.csdn.net/swin16/article/details/80256123”

注解

TextReader 类是抽象类。 因此,不要在代码中对其进行实例化。 StreamReader 类派生自 TextReader,并提供成员的实现以从流中读取。 下面的示例演示如何使用 StreamReader.ReadAsync(Char[], Int32, Int32) 方法读取文件中的所有字符。 它在将字符添加到 StringBuilder 类的实例之前,检查每个字符是否为字母、数字或空格。

注解

TextReader 是 StreamReader 和 StringReader的抽象基类,分别从流和字符串读取字符。 使用这些派生类打开文本文件以读取指定范围内的字符,或创建基于现有流的读取器。

https://docs.microsoft.com/zh-cn/dotnet/api/system.io.textreader?redirectedfrom=MSDN&view=netframework-4.8

原文地址:https://www.cnblogs.com/icaowu/p/12059151.html

时间: 2024-11-02 03:52:25

C#读操作(字节/字符)Filestream、File、StreamReader的相关文章

Java学习之IO流(其他操作流 【操作基本数据类型、操作字节数组、操作字符数组、操作字符串】)

操作基本数据类型DataInputStream.DataOutputStream 1 DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt")); 2 dos.writeUTF("你好"); 3 dos.close(); 4 5 DataInputStream dis = new DataInputStream(new FileInputStream("data

c#文件之读操作摸索学习

主要知识点: 一. FileStream file_read = new FileStream("1.txt", FileMode.Open, FileAccess.Read);//只读权限打开1.txt文件 参数1: "1.txt":文件路径,通常用字符串变量或者字符串常量表示,如:"d:\\1.txt"; 参数2: FileMode.Open:打开模式,此种方式如果存在则打开,否则抛出异常. FileMode.Append:追加模式,打开文件

IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组

打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 一.打印流: 该流提供了打印方法,可以将各种数据类型的数据都原样打印. 字节打印流PrintStream构造函数可以接收的参数类型1.File对象 File2.字符串路径 String3.字节输出流 OutputStream 字符打印流PrintWriter(更常用)1.File对象 File2.字符串路径 String3.字节输出流 OutputStream4.字符输出流 Writer publ

字节/字符——输入/输出流

一:1.计算机如何存储中文的? 当前平台默认编码集 :GBK 一个中文两个字节第一个字节:一定是负数第二个字节:一般是负数,可能也会是正数,不会影响的结果.*/public class StringDemo {public static void main(String[] args) {//定义一个字符串// String str = "abc" ;// String str = "我爱你中国" ;String str = "你好" ;//[-

开发技术--浅谈文件操作与字符编码

开发|浅谈文件操作与字符编码 听说Python的文件操作很容易在某一些电脑上出问题,然而罪魁祸首就是字符编码.让我们来了解一些底层的编码方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 本文主要分为两大部分,一部分是如何使用Python进行文件操作,另一部分是聊一下字符编码的那些事.(比较绕,尽量用最最最通俗的话表述~~) 文件操作 1.文件操作方式 open(

IO-04字节-字符转换流

掌握OutputStreamWriter和InputStreamReader的作用. 在整个IO包中,实际上就是分为字节流和字符流,但除了这两个流之外,还存在一组字节-字符流转换类. OutputStreamWriter:是Writer的子类,将输出的字符流编程字节流,既:将一个字符流的输出对象变成字节流输出对象. InputStreamReader:是Reader的子类,将输入的字节流变成字符流.既:将一个字节流的输入对象变成字符流的输入对象. 字符流转换成字节流的代码: package li

FileInputStream 原理总结 把文件作为字节流进行读操作

package io; import java.io.FileInputStream; import java.io.IOException; public class IOUtil { /** * 读取指定文件内容,按照16进制输出到控制台,为什么要按十六进制? * 并且每输出10个byte换行 * @throws IOException */ public static void printHex(String filename) throws IOException{ //把文件作为字节流

第23讲 python的读操作基础

a=file_obj.read() 默认读全部 b=file_obj.read(15) 只读15个字符 help(file.read)  查看帮助 eg2: file_obj=open('test.txt','r') line1=file_obj.readline() print 'line1:',line1   #me:print的逗号表示打印在同一行 line2=file_obj.readline() print 'line2:',line2 List1=file_obj.readlines

java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)

直接看代码: package cn.itcast.io.p6.bytestream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; public class ByteArrayStreamDemo { /** * @param args * @throws IOException * 特点 * 1.内存操作流 * 2.不操作底层资源,不调

Android——检测TXT文件中是否含有双字节字符

在读取双字节字符时,主要涉及到编码的选取: Java代码   public static boolean isRightfulTXT(File f) { // TODO Auto-generated method stub String regexp="[^\\x00-\\xff]";//双字节字符 Pattern p=Pattern.compile(regexp); try { FileInputStream fis=new FileInputStream(f); //"G