In computing, a buffer is memory used to temporarily hold output or input data. The output or input can be to or from external devices or between programs within a computer. Buffers can be implemented in either hardware or software, but the vast majority of buffers are implemented in software.