I currently have a 16bit mono file. I would like to read this data to retrieve only the data chunk part and not the entire file with the headers so that I can apply fft on it. I tried finding solutions to read only the data chunk but the codes I managed to find were either not complete / seems to have errors. I am doing this in c#.
You have to know the format of the header. For example, if it's a RIFF Wave file, the header is always 44 bytes long. You could simply grab every byte beyond 44 without verifying anything. If you're already assuming in your code that the file is 16 bit and mono, then you may as well hard-code the length of the header.
Just hope you won't have to deal with other types of files. ;)