客户端写入服务器 - 服务器读取.和服务器写入客户端 - 客户端未读取.
服务器:
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
class SocketServer
{
public static void Main()
{
StreamReader streamReader;
NetworkStream networkStream;
TcpListener tcpListener = new TcpListener(5555);
tcpListener.Start();
Console.WriteLine("The Server has started on port 5555");
Socket serverSocket = tcpListener.AcceptSocket();
try
{
if (serverSocket.Connected)
{
Console.WriteLine("Client connected");
networkStream = new NetworkStream(serverSocket);
AsynchronousMethodDelegate asyncDeleg = new AsynchronousMethodDelegate(AsynchronousMethod);
AsyncCallback callback = new AsyncCallback(CallbackMethod);
asyncDeleg.BeginInvoke(networkStream, callback, asyncDeleg);
streamReader = new StreamReader(networkStream);
while (true)
{
Console.WriteLine(streamReader.ReadLine());
}
}
if …Run Code Online (Sandbox Code Playgroud) 我从文件中得到的文字有以下字符串:1"-DC-19082-A3
获得该行后,我得到以下字符串(在调试时得到它):"\"1 \"\" - DC-19082-A3 \""
因为我正在搜索数据库,所以没有任何用途
任何想法我怎么能回到原来的?
我已经看到StreamWriter.WriteLine可以完成这项工作,但我不想为此创建任何文件.
我尝试了以下,但它没有用
StringBuilder sb = new StringBuilder();
sb.Append(@"\");
sb.Append('"');
string strToReplace = sb.ToString();
string lineNumberToSearchFor = lineNumber.Replace(strToReplace, string.Empty);
Run Code Online (Sandbox Code Playgroud)
希望有一个简单的方法来实现这一目标
非常感谢!
我需要读取一个范围从8k到5MB的文本文件.该文件由单行文本组成.没有回车或行结束.然后我需要把它分解成各个部分.这些作品是按大小划分的.例如,第一个信息夹由240个字符组成.在那240个字符中,前30个是名称字段.接下来的35个是地址,依此类推.解析一下,StreamReader类是将其读入内存的最佳选择吗?
尝试使用StreamReader或类似的C#来读取和写入非常长的行而不使用换行符.
据我了解,在一个称为文件的长字节中,换行仍然只是2个字节(CR + LF).至少那就是我在C/C++中的习惯......
这对于C#和.net是否相同,或者没有换行的行有一些最大长度?
我们在大学里做了一个功课,使用MVC和VB制作一个本地网站,它将从Json文件(即App_Data文件夹中的位置)读取一些种子数据并填充数据库.问题是,我不知道如何让Json从App_data中的文件中读取,而不为其分配完整的地址.
几乎所发生的事情是我给它一个地址:
File.ReadFile("~/App_Data/emails.json") 'Also tried "App_Data/emails.json"
Run Code Online (Sandbox Code Playgroud)
之后,我将此路径(作为文件名)传递给StreamReader:
Using fileRead As New IO.StreamReader(filename)
Json read stuff
Run Code Online (Sandbox Code Playgroud)
而不是读取此地址作为项目的地址("C:\ Users\BlueLight\Desktop\Codes\VBA\NMCAss2\App_Data\emails.json"),它抛出一个异常,它
"找不到的一部分路径'C:\ Program Files(x86)\ Common Files\Microsoft Shared\DevServer\10.0\App_Data\emails.json'." 因此,它在不同的地方搜索.
我可以将此路径重定向到我的App_Data,而不使用完整路径吗?或者,我的逻辑中可能存在某个问题?
提前致谢.
更新:我尝试用"\"反转"/",如"App_Data\filename.json"和"'〜\ App_Data\filename.json"它仍然无法正常工作.
我有这个代码,但它不起作用.我尝试了几个不同的版本,但没有任何工作.我是新手,但仍然不懂一切.
OpenFileDialog filedialog = new OpenFileDialog();
private void button3_Click(object sender, EventArgs e)
{
filedialog.ShowDialog();
filedialog.FileOk += filedialog_FileOk;
}
void filedialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
using (StreamReader myStream = new StreamReader(filedialog.FileName))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = myStream.ReadLine()) != null)
{
listBox1.Items.Add(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这个编辑器需要很多纯文本.
我需要能够获取具有未知编码的文本文件(例如,UTF-8,UTF-16,...)并逐行复制,随时进行特定更改.在这个例子中,我正在改变编码,但是这种处理还有其他用途.
我无法弄清楚的是如何确定最后一行是否有换行符!有些程序关心具有这些记录的文件之间的区别:
Rec1<newline>
Rec2<newline>
Run Code Online (Sandbox Code Playgroud)
和这些文件:
Rec1<newline>
Rec2
Run Code Online (Sandbox Code Playgroud)
如何区分我的代码以便我采取适当的措施?
using (StreamReader reader = new StreamReader(sourcePath))
using (StreamWriter writer = new StreamWriter(destinationPath, false, outputEncoding))
{
bool isFirstLine = true;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (isFirstLine)
{
writer.Write(line);
isFirstLine = false;
}
else
{
writer.Write("\r\n" + line);
}
}
//if (LastLineHasNewline)
//{
// writer.Write("\n");
//}
writer.Flush();
}
Run Code Online (Sandbox Code Playgroud)
注释掉的代码是我想要的,但我无法弄清楚如何设置条件lastInputLineHadNewline!请记住,我没有输入文件编码的先验知识.
fileStream在调用Close方法之前,对象是否有可能被销毁?
FileStream fileStream = new FileStream(xxx);
StreamReader txtReader = new StreamReader(fileStream);
curLog = txtReader.ReadToEnd();
txtReader.Close();
fileStream.Close();
Run Code Online (Sandbox Code Playgroud) 我想读一个文件,在这种情况下是3mb,这需要大约50-60秒,这似乎非常慢.有谁知道如何让这更快?
string text = null;
using (StreamReader sr = new StreamReader(file, Encoding.Default))
{
string line;
while ((line = sr.ReadLine()) != null)
{
text += (line);
backgroundWorker1.ReportProgress(text.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
我还需要使用后台工作程序,以便我可以报告已加载的百分比(对于大约500mb到1gb的文件)
我想从文本文件中读取第4,5和6行,并将它们存储为单独的字符串.这是我的代码,它只打印出文本文件中的每一行.
ReadFromFile(@"C:\Users\Eoghan\Documents\Assign02_Data.txt");
static void ReadFromFile(string aTextFile)
{
System.IO.StreamReader InputFile = new System.IO.StreamReader(aTextFile);
string s;
while (!InputFile.EndOfStream)
{
s = InputFile.ReadLine();
Console.WriteLine(s);
}
}
Run Code Online (Sandbox Code Playgroud) streamreader ×10
c# ×9
string ×2
add ×1
encoding ×1
file ×1
filestream ×1
json ×1
line-breaks ×1
line-by-line ×1
listbox ×1
newline ×1
streamwriter ×1
text ×1
textreader ×1
using ×1
vb.net ×1