以二进制读取文本文件(网上找的,仅自用,非原创)

using System;
using System.IO;

public class FileApp
{
public static void Main()
{
// 在当前目录创建一个文件myfile.txt,对该文件具有读写权限
FileStream fsMyfile = new FileStream("myfile.txt" , FileMode.Create, FileAccess.ReadWrite);

// 创建一个数据流写入器,和打开的文件关联
StreamWriter swMyfile = new StreamWriter(fsMyfile);

// 以文本方式写一个文件
swMyfile.WriteLine("Hello, World");
swMyfile.WriteLine("abcdefghijklmnopqrstuvwxyz");
swMyfile.WriteLine("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
swMyfile.WriteLine("0123456789");

// 冲刷数据(把数据真正写到文件中去)
// 注释该句试试看,程序将报错
swMyfile.Flush();

// 以文本方式读文件
// 创建一个数据流读入器,和打开的文件关联
StreamReader srMyfile= new StreamReader(fsMyfile);

// 把文件指针重新定位到文件的开始
srMyfile.BaseStream.Seek(0, SeekOrigin.Begin);

// 打印提示信息
Console.WriteLine("****************以文本方式读文件*********************");

// 打印文件文本内容
string s1;
while((s1 = srMyfile.ReadLine())!=null)
{
Console.WriteLine(s1);
}
Console.WriteLine();
// 以文本方式读文件结束

// 以二进制方式读文件
// 创建一个二进制数据流读入器,和打开的文件关联
BinaryReader brMyfile= new BinaryReader (fsMyfile);

// 把文件指针重新定位到文件的开始
brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);

// 打印提示信息
Console.WriteLine("****************以二进制方式读文件*********************");

// 打印文件文本内容
Byte b1;
while(brMyfile.PeekChar()>-1)
{
b1=brMyfile.ReadByte();
// 13为"\n",表示回车;10为"\r",表示换行
if(b1 != 13 && b1 != 10)
{
Console.Write("{0}",b1.ToString());
Console.Write(".");
}
else
{
Console.WriteLine();
}
}
Console.WriteLine("\n");
// 以二进制方式读文件结束

// 关闭以上new的各个对象
brMyfile.Close();
srMyfile.Close();
fsMyfile.Close();

// 读取文件属性
// 打印提示信息
Console.WriteLine("****************读取文件属性*********************");

FileInfo fiMyfile=new FileInfo("myfile.txt");
Console.WriteLine("文件名 : {0}",fiMyfile.Name);
Console.WriteLine("文件名(含路径) : {0}",fiMyfile.FullName);
Console.WriteLine("文件大小(bytes) : {0}",fiMyfile.Length);
Console.WriteLine("文件创建时间 : {0}",fiMyfile.CreationTime);
}
}

原文地址:https://www.cnblogs.com/hsyv123ve/p/8733337.html

时间: 2024-11-09 15:44:28

以二进制读取文本文件(网上找的,仅自用,非原创)的相关文章

QT初体验1:如何学习QT之个人浅见,以及如何读取文本文件,在调试信息中输出。

2017年11月初,随着工作岗位的调动,我转到了研发岗,开始了漫漫程序员的成长之路.首先介绍下个人知识储备,大一学习过C语言,没有工程经验,所学是为了期末考试+2级考试,考完在大学+硕士期间没有用到编程. 来到新的工作岗位,心情是既激动又忐忑的,作为一名青铜段位程序员,我得好好规划下学习.成长的路径. 我选择的方法是,跟着项目走,工作中不可能给你大把时光来造作,去把厚厚的C++ Primer or C++ Primer Plus给通读一遍.带着任务去学习,学的最快.具体而言,我的学习思路是: 1

node读取文本文件时,去掉BOM

BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行, BOM的移除 BOM用于标记一个文本文件使用Unicode编码,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部.在不同的Unicode编码下,BOM字符对

读取文本文件插入数据库

做了一个读取加密文件经过解密后插入数据库的功能,如果在数据库中没有该ID号(唯一)的记录则执行插入操作,如果该数据库中存在该ID的记录好么执行更新操作.本次选择文件采用的是 FileUpload控件,但这个控件在浏览器中如果设置不好通过FileUpload1.FileName或FileUpload1.PostedFile.FileName得到的只是文件名而不是全路径,而StreamReader sr = new StreamReader(url, Encoding.GetEncoding("GB

一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存

Top K 算法详解应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节.        假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个.一个查询串的重复度越高,说明查询它的用户越多,也就是越热门.),请你统计最热门的10个查询串,要求使用的内存不能超过1G. 必备知识:什么是哈希表?        哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进

c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中.然后再将二进制文件还原并存入b2.txt文件. 参考链接:https://www.jb51.net/article/158695.htm 1 #include <cstdio> 2 #include <

Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)

很多情况下我们是这样读取文本文件的: with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r') as f: text = f.read()但是如果该文本文件是gbk格式的,那么将会报以下错误: Traceback (most recent call last): File "F:/.Python Project/spidertest1/test/MyTest4.py", line 14, in <module

c++读取文本文件

#include<iostream> #include<fstream> using namespace std; int main() { int a,b=-100000,c; cin>>c; int i; ifstream infile("f1.dat",ios::in); for(i=0;i<c;i++) { infile>>a; if(a>b) b=a; } cout<<"max number:

使用字符流读取文本文件

1.字符输入流Reader类 Reader类是读取字符流的抽象类,它提供了常用的方法. Reader rd= new FileReader("Test/xy.txt");// int b=rd.read(); //从输入流中读取单个字符// System.out.println((char)b); char[] chars = new char[10]; //从输入流中读取chars.length长度的字符 int length = rd.read(chars);   System.o

读取文本文件中指定的几列

今天在论坛上看到一个问题,这个问题大概是这样的,读取文本文件中指定的几列,并存储入数据库中. Insus.NET花上些少时间,实现读取文本的功能部分.创建一个文本文件,文本添加好几行.每一行有好几列,列与列之间使用逗号分隔. adf,adfadf,adsfgads,qwer,wrt,wrey,asdfs,qwer,tryerqert6uy7,468u4,578,qewrqew,qwertwet,67u46,45676,45qer87,47857,et356y,etyedgh adsadf,adf