标签: stream

在dup2之后,流还包含旧内容?

所以,如果我这样做:

dup2(0, backup); // backup stdin
dup2(somefile, 0); // somefile has four lines of content
fgets(...stdin); // consume one line
fgets(....stdin); // consume two lines
dup2(backup, 0); // switch stdin back to keyboard
Run Code Online (Sandbox Code Playgroud)

我在这一点上发现.. stdin仍然包含我没有消耗的两条线.这是为什么?因为无论重定向多少次,只有一个缓冲区?我如何摆脱剩下的两行,但是当我想回到它时,仍然记得我在somefile流中的位置?

c unix redirect stream dup2

0
推荐指数
1
解决办法
448
查看次数

从C中的文件中读取原语

我是C的新手,想要从文件中读取一些数据.

实际上,我发现了许多阅读功能,fgetc,fgets等.但我不知道哪个/组合最好用以下格式读取文件:

0 1500 100.50
1 200     9
2 150     10
Run Code Online (Sandbox Code Playgroud)

我只需要将上面的每一行保存到一个包含三个数据成员的结构中.

我只需要知道这样做的最佳实践,因此我是C编程的新手.

谢谢.

c file-io iostream stream

0
推荐指数
1
解决办法
150
查看次数

Java的[输入|输出] Streams的单方法调用每个字节:性能问题?

[输入|输出]从JDK1.0开始存在,而从JDK1.1开始存在字符对应的读者|写入者.

大多数概念似乎相似,但有一个例外:的基类声明其处理一个抽象方法一次字节,而基地读/写器的类声明,其处理整个一个抽象方法char-arrays.

因此,鉴于我理解正确,每个重写的类都限于处理单个字节(从而为每个字节执行至少一个方法调用!),而被覆盖的读取器/写入只需要每个数组的方法调用(-buffer).

这不是一个巨大的性能问题吗?

流是否可以作为InputStream或者的子类实现OutputStream,但是仍然基于byte-arrays?

java io stream writer

0
推荐指数
1
解决办法
412
查看次数

读取文件时出现乱码问题

我无法从文件中读取数据,并将数据(文本)的选定部分连接到我自己的缓冲区中.

代码如下:

 char buffer[1000];
  char* allNewData = (char *)malloc(10000);

  while (! myfile.eof() )
  {
   myfile.getline (buffer, 1000);
   pch = strstr (buffer,"bla bla");
   if(pch == NULL)
   {
    char* temp = buffer;
    strcat(allNewData, temp);
    strcat(allNewData, "\n");
   }
   else
   {
    strcat(allNewData, "here's bla bla");
    strcat(allNewData, "\n");
   }
  }

  cout<<allNewData<<endl;
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,allNewData首先有一些垃圾文本,然后是正确/预期的结果,如下所示:

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii <-rubbish data
hello  <- actual data
Run Code Online (Sandbox Code Playgroud)

我需要摆脱这些垃圾数据,如何更改代码来实现这一目标?

c++ ignore skip stream

0
推荐指数
1
解决办法
3191
查看次数

Blackberry webworks:支持HTML5

请帮帮我..有谁知道吗?是我的blackberry bold 9700(5.0.0.469)支持HTML5音频流吗?谢谢..

audio html5 blackberry stream

0
推荐指数
1
解决办法
1998
查看次数

复制和重定向System.err流

我目前在我的应用程序中使用java.util.logger.它将其输出发送到System.err.我需要它继续这样做,但我还需要将该输出发送到其他东西.

有没有办法复制System.err流,以便它可以发送到两个不同的源?

java logging stream redirectstandardoutput

0
推荐指数
1
解决办法
872
查看次数

从文件中读取值时,垃圾附加到输出

我是C++文件io的新手,所以前几天我决定编写一个小程序,只读取一个UTF-8编码的字符串和一个二进制文件中的配对浮点数.模式是字符串浮点数,没有额外的数据或对之间的间距.编辑我已根据几个答案修改了代码.但是,输出保持不变("RoommateAp 0");

string readString (ifstream* file)
{
    //Get the length of the upcoming string
    uint16_t stringSize = 0;
    file->read(reinterpret_cast<char*>(&stringSize), sizeof(char) * 2);

    //Now that we know how long buffer should be, initialize it
    char* buffer = new char[stringSize + 1];
    buffer[stringSize] = '\0';

    //Read in a number of chars equal to stringSize
    file->read(buffer, stringSize);
    //Build a string out of the data
    string result = buffer;

    delete[] buffer;
    return result;
}

float readFloat (ifstream* file)
{
    float buffer = …
Run Code Online (Sandbox Code Playgroud)

c++ file-io stream

0
推荐指数
1
解决办法
2190
查看次数

从DataInputStream读取而不知道输出类型

假设我DataInputStream用来接收数据,但我不知道是否应该使用(例如)readUTF,readInt或者readLong.有没有一种方法可以告诉我在另一边写了什么类型的数据?

java stream

0
推荐指数
1
解决办法
115
查看次数

C# - 如何在WCF服务中读取流

我有一个WCF服务,我想发送一个日志文件并在服务器上处理它.合同是:

[OperationContract]
void LogFile(Stream file);
Run Code Online (Sandbox Code Playgroud)

我在端点中使用StreamedRequest.

我遇到的问题是我无法找到一种方法来读取服务中的流.

当我调试调用时,我看到Stream是一个实例:

System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream
Run Code Online (Sandbox Code Playgroud)

从客户端我发送一个MemoryStream.

那么......我怎么能读到这个流?

谢谢.

Edit1:即时通讯使用:

        Stream serviceStream = new MemoryStream();
        byte[] buffer = new byte[10000];
        int bytesRead = 0;
        do
        {
            bytesRead = file.Read(buffer, 0, buffer.Length);
            serviceStream.Write(buffer, 0, bytesRead);
        } while (bytesRead > 0);
        serviceStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)

读取流,什么都没有,总是0

c# wcf stream

0
推荐指数
1
解决办法
5254
查看次数

Java BufferedOutputStream策略

您可以为BufferedOutputStream构造函数提供缓冲区大小的int参数.我的szenario我有一个进程写入磁盘和从磁盘读取进程.具有8192字节的默认缓冲区会导致大文件的高度碎片化.

现在我想知道如果我将缓冲区大小提升到1 Mb,是否可以减少碎片.

我认为这应该有效.但BufferedOutputStream如果我总是打电话,他仍然会尊重我的缓冲 BufferedOutputStream.write(smallBuffer,0,i); // i being smaller than 8192

我很小,因为我正在网上捕捉小的paketes(8192字节).但我想要BufferedOutputStream真正缓冲很多,而不是决定先冲洗?

BufferedOutputStream "愚蠢的",足以等到缓冲区已满或者flush()被调用.或者它安装了一些基于时间的冲洗机制?

java buffer process disk stream

0
推荐指数
2
解决办法
2393
查看次数

标签 统计

stream ×10

java ×4

c ×2

c++ ×2

file-io ×2

audio ×1

blackberry ×1

buffer ×1

c# ×1

disk ×1

dup2 ×1

html5 ×1

ignore ×1

io ×1

iostream ×1

logging ×1

process ×1

redirect ×1

redirectstandardoutput ×1

skip ×1

unix ×1

wcf ×1

writer ×1