The root of many problems is trying to show information on a diagram that is not intended to use it this way. This is usually happening when you try to indicate the whole model on just one diagram.
The Components Diagram is a static view of the system. It shows connections and dependencies. The only information about the direction of data flow that can be read from it is who actually initiates the communication but does not depict the direction of the data flow.
To show the data flow, that is a dynamic (behavioural) part of your system you should use some other diagram(s). I would go for a sequence diagram (probably a few of them), however some other behaviour diagrams might do as well.
If you still insist on showing the data flow direction on the same diagram, there are two related possibilities. First of all, you should depict the components with ports (shown as small rectangles, from which the interface lines protrude rather than coming directly from the component itself).
Now you have two options. One is to use stereotypes for ports, marking them as
<<out>> respectively. The other option is to use Profiles to extend the UML and, actually still by stereotyping, change its visualisation to have a small arrow inside indicating data flow.
I am not sure if StarUML supports ports and if you can stereotype them there. I have also no idea if there is any tool other than some general diagramming tools like Visio or Dia that supports visual extension of UML, theoretically granted by profiles.