A man has been rescued in central Queensland after a crocodile attack and bad weather left him stranded on Townshend Island for four days.

The Australian Maritime Safety Authority (AMSA) said the man was kayaking off the coast of Shoalwater Bay when a crocodile appeared from nowhere in the middle of the ocean and attacked his boat.

He told rescuers the crocodile savaged his kayak and he used his paddle to successfully fend off the attack.

He was not hurt and managed to paddle his damaged kayak about three kilometres to Townshend Island.

"He was very fortunate," an AMSA said.

"It didn't pierce the kayak. He said he was running on adrenalin [to get to the island]."

Authorities said bad weather then moved in and the man spent four days stranded on the island, before running out of water and provisions and deciding to activate his emergency rescue beacon.

He was found about 7:00 am on Saturday and taken by helicopter back to the mainland, AMSA said.

While his beacon was not registered, it was functional and did lead searchers to his location.

AMSA urged anyone venturing into remote areas, on the water and on land, to ensure their emergency beacon was registered.

ABC/AFP