Saving a table to a file. Including sub tables.

I have this code:
[lua]
Bones = {}
if (SERVER) then
for k, v in pairs(player.GetAll()) do

	pos = v:GetShootPos()
	ang = v:GetAimVector()
	tracedata = {}
	tracedata.start = pos
	tracedata.endpos = pos+(ang*8000)
	tracedata.filter = v
	trace = util.TraceLine(tracedata)
	print("traced")

	if trace.HitNonWorld then
		
		target = trace.Entity
		--Add all the bones to a table
		for i=0, target:GetPhysicsObjectCount( ) -1 do
			
			local physBone = target:GetPhysicsObjectNum( i )
			if (physBone:IsValid()) then
			
				print(i)
				print(physBone:GetPos())
				print(physBone:GetAngle())
				print(physBone:IsMoveable())
				print("

")

				Bones* = {}
				Bones*.Pos = physBone:GetPos()
				Bones*.Angle = physBone:GetAngle()
				Bones*.Frozen = physBone:IsMoveable()
			end
		
		end
		

	end

end

print("DONE")

local save = util.TableToKeyValues(Bones)
file.Write("Bones.txt",save)

end
[/lua]

This outputs the file: (Note the model I was looking at was a headcrab)



"Out"
{
	"1"
	{
	}
	"2"
	{
	}
	"3"
	{
	}
	"4"
	{
	}
	"5"
	{
	}
	"6"
	{
	}
	"7"
	{
	}
	"8"
	{
	}
	"0"
	{
	}
}


However the print in the code prints:




0
346.6515 -217.2151 -100.0844
4.839 -0.931 91.590
false


1
346.2612 -211.0253 -100.5686
86.414 68.791 300.774
true


2
346.0318 -223.3490 -100.9092
86.544 -14.530 259.332
true


3
346.3878 -223.4413 -106.9969
80.906 -179.882 94.049
true


4
355.0333 -223.0092 -104.7241
-12.912 -62.671 235.271
true


5
358.7276 -230.1579 -102.8794
-5.631 -67.701 236.083
false


6
355.0645 -211.8129 -104.6226
-1.407 52.134 155.198
true


7
360.1304 -205.2974 -104.4199
11.403 81.007 157.783
false


8
346.3992 -210.6696 -106.6554
74.269 -148.461 83.221
true


So how would I go about saving all the values into the text file? Tables that are in tables?
But also in a format I can also Read back from again to recreate the tables in the table.

Glon.