对于我的学校项目,我必须表明我可以在程序中使用文件处理.为此,我做了一个非常简单的登录过程,您可以创建一个帐户,将用户名和密码写入资源文件夹中的文本文件.显然这根本没有任何安全性,因为它不是为了展示文件处理而设计的,但是我的老师说我应该尝试在文件中添加一些加密以获得更好的成绩.
我做了一些研究,很多人都在推荐DES.
我遇到的问题是我的项目没有太多时间,需要尽快完成.使用DES似乎需要一段时间来实现所有额外的代码.
在我的程序中,我使用一个简单的lineNumberReader来逐行读取文件.写入我正在使用BufferedWriter的文件.
反正非常简单地加密这些数据了吗?它不一定非常安全,但我需要证明我至少试图加密数据.加密和解密都将在同一应用程序上完成,因为数据未被传输.
我可以自己创建一个非常简单的加密和解密算法吗?
我有一些代码:
public static void ReadTextFile()
{
string line;
// Read the file and display it line by line.
using (StreamReader file = new StreamReader(@"C:\Documents and Settings\Administrator\Desktop\snpprivatesellerlist.txt"))
{
while ((line = file.ReadLine()) != null)
{
char[] delimiters = new char[] { '\t' };
string[] parts = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);
sepList.Add(parts[i]);
}
}
file.Close();
}
// Suspend the screen.
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
它读入包含由制表符分隔的数据的文本文件,并将数据拆分为单独的单词.
我遇到的问题是,一旦数据被分离,它在列表中的随机字符串的左侧和右侧仍然有大量的空白区域(事实上大多数都是这样).我无法修剪字符串,因为它只删除了空格,从技术上讲,这不是空格.
任何人都有任何关于如何解决这个问题的想法!?
鉴于以下总统名单可以在最小的计划中进行前十个字数:
输入文件
Washington
Washington
Adams
Jefferson
Jefferson
Madison
Madison
Monroe
Monroe
John Quincy Adams
Jackson
Jackson
Van Buren
Harrison
DIES
Tyler
Polk
Taylor
DIES
Fillmore
Pierce
Buchanan
Lincoln
Lincoln
DIES
Johnson
Grant
Grant
Hayes
Garfield
DIES
Arthur
Cleveland
Harrison
Cleveland
McKinley
McKinley
DIES
Teddy Roosevelt
Teddy Roosevelt
Taft
Wilson
Wilson
Harding
Coolidge
Hoover
FDR
FDR
FDR
FDR
Dies
Truman
Truman
Eisenhower
Eisenhower
Kennedy
DIES
Johnson
Johnson
Nixon
Nixon
ABDICATES
Ford
Carter
Reagan
Reagan
Bush
Clinton
Clinton
Bush
Bush
Obama
以 …
我有一个文本文件,它可以是ANSI(带有ISO-8859-2字符集),UTF-8,UCS-2 Big或Little Endian.
有没有办法检测文件的编码以正确读取它?
或者是否可以在不提供编码的情况下读取文件?(它按原样读取文件)
(有几个程序可以检测和转换文本文件的编码/格式.)
我的简单要求:读取一个巨大的(>一百万)行测试文件(对于这个例子假设它是某种类型的CSV)并保持对该行开头的引用以便将来更快地查找(读取一行,从X).
我首先尝试了一种天真而简单的方法,使用a StreamWriter并访问底层BaseStream.Position.不幸的是,这不符合我的意图:
给定包含以下内容的文件
Foo
Bar
Baz
Bla
Fasel
Run Code Online (Sandbox Code Playgroud)
这个非常简单的代码
using (var sr = new StreamReader(@"C:\Temp\LineTest.txt")) {
string line;
long pos = sr.BaseStream.Position;
while ((line = sr.ReadLine()) != null) {
Console.Write("{0:d3} ", pos);
Console.WriteLine(line);
pos = sr.BaseStream.Position;
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
000 Foo
025 Bar
025 Baz
025 Bla
025 Fasel
Run Code Online (Sandbox Code Playgroud)
我可以想象,流正在尝试提供帮助/效率,并且可能在需要新数据时读入(大)块.对我来说这很糟糕..
最后的问题是:在没有使用基本Stream并且手动搞乱\ r \n\r \n和字符串编码等的情况下逐行读取文件时获取(byte,char)偏移量的方法是什么?没什么大不了的,真的,我只是不喜欢建造可能存在的东西......
我有一个充满数字的文本文件,我想将数字读入Java,然后制作一个我可以排序的列表.自从我使用java以来已经有一段时间了,我忘记了如何做到这一点.
文本文件看起来像这样
4.5234
9.3564
1.2342
4.4674
9.6545
6.7856
Run Code Online (Sandbox Code Playgroud) 我有一个经常性的任务,即将一组大的(每个大约1-2 GiB)gzip压缩的Apache日志文件拆分成几个部分(比如说500K行的块).应该再次压缩最终文件以限制磁盘使用量.
在Linux上我通常会这样做:
zcat biglogfile.gz | split -l500000
Run Code Online (Sandbox Code Playgroud)
生成的文件文件将命名为xaa,xab,xac等.所以我这样做:
gzip x*
Run Code Online (Sandbox Code Playgroud)
这种方法的效果是,作为中间结果,这些巨大的文件暂时存储在磁盘上.有没有办法避免这种中间磁盘使用?
我可以(以类似于xargs的方式)通过命令(如gzip)拆分输出并在运行中重新压缩输出吗?或者我是在寻找错误的方向,是否有更好的方法来做到这一点?
谢谢.
我有一个非常简单的程序.代码:
money = open("money.txt", "r")
moneyx = float(money)
print(moneyx)
Run Code Online (Sandbox Code Playgroud)
文本文件money.txt仅包含以下内容:
0.00
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息是:
TypeError: float() argument must be a string or a number
Run Code Online (Sandbox Code Playgroud)
这很可能是一个简单的错误.有什么建议?我使用的是Python 3.3.3.