There is a lot of confusion, because many people do not tell which flow they talk about. A flow is characterized by a current-density vector, and here there are involved at least two different vectors in this question.
The first is the number-density current of electrons in a wire. If the number density of electrons is n(t,\vec{x}) and \vec{v}(t,\vec{x}) the velocity field of the electrons, then the number-density current is \vec{J}_n(t,\vec{x})=n(t,\vec{x}) \vec{v}(t,\vec{x}). Obviously n(t,\vec{x})>0 (giving the number of electrons per unit volume). The number-current density gives the number of electrons per unit time running through a surface element with surface-area vector \mathrm{d} \vec{F} as
\mathrm{d}N=\mathrm{d} \vec{F} \cdot \vec{J}_n.
The electric current-density vector \vec{j}_{\text{el}}, however, gives the charge per unit time running through the surface element. Obviously we have \vec{j}_{\text{el}}=-e \vec{J}_n, where -e<0 is the charge of one electron. This shows that the electric current-density vector points always in the opposite direction of the number-density current of electrons, simply because (by convention!) electrons are negatively charged.
You can indeed find out, whether the charge carriers of a current are positively or negatively charged by using the Hall effect:
http://en.wikipedia.org/wiki/Hall_effect
It turned out that in metals the charge carriers carry negative charge, while in some semiconductors the charge carriers are negatively charged. In the case of metals the charge carriers are (medium modified) electrons and in the case of p-doted semiconductors positively charged quasiparticles, i.e., electron holes in the Fermi sea.