Since we will be arriving at 12:15 am, I would like to buy some Sri Lankan rupees before arrival.
Is this possible if coming from Australia (via Singapore)?
There are quite low limits on the amount of rupees you can bring in with you, or take out again, from Sri Lanka. There are also some restrictions on converting Sri Lankan rupees to foreign currency, which affect locals more than tourists.
There are a few upshots of this. Firstly, it tends to mean you get a poor exchange rate outside the country. Secondly, if you're happy to take your chances, you can get some great rates at unofficial currency changers in the country. Thirdly, a lot of tourist related things (tour guides etc) will give a large discount for payments in foreign currency (especially Euros, US Dollars and GB Pounds)
My advice would be to only get a small amount of currency in advance, likely at a very poor rate. Take a reasonable amount of foreign currency with you, but mind you don't exceed the limits. When there, you'll be able to use an ATM card in major cities to withdraw cash, your hotel will give you an exchange rate close to the official one (and much better than you can normally get outside the country) if you need to change some foreign cash, and some shops + tour guides will give you very good rates for the same!
Yes, this is possible from Travelex. From their website listing currencies:
Travelex stores regularly stock the following currencies:
In addition, the following currencies are usually available at our airport stores, and may be available at your nearest Travelex Store:
Travelex is in most major Australian cities, and certainly in most of their airports.