This week's book giveaway is in the Java in General forum. We're giving away four copies of Think Java: How to Think Like a Computer Scientist and have Allen B. Downey & Chris Mayfield on-line! See this thread for details.
Our Servlets FAQ has a list of hosting companies, a few of which are free. Since hosting companies provide some SSH functionality, that will get you SFTP.
What you really want is a "shell account", basically a user account on a remote system. A quick googling finds several providers of free shell accounts. I can't vouch for their capabilities.