This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
If you are using a character array as input, you can easily do this. If you are using the String class and still don't want to call things like charAt or toCharArray or others, this does not seem possible.
As this sounds like an assignment, I won't post code Show us what you've got first.
You can use the RandomAccessFile to temporarily write your string into a file and the while reading from the same file you can read it in the reverse direction. RandomAccessFile gives you the luxury of accessing the file pointer (cursor) so you can define where to read in the file.
PS: By the way why do you want to avoid the built in String and StringBuffer methods?
All of the suggested solutions so far have the disadvantage that a data copy must occur. This is the result of failure of abstraction on behalf of java.lang.String - specifically, failure to declare all public methods to an interface. If you assume the interface of java.lang.CharSequence, you can achieve a reverse without ever copying the String data.