LCD and SD

Okay, So what I want to do is read a file on an SD card and then print the text (or at least the first 16 characters of text) to my LCD Screen.
Currently when I run it it displays a series of numbers which tends to be somewhat annoying. I want it to print the exact text from the file.
Below is my code (two attempts at it) IF anyone knows what I'm suppose to do that would help greatly.
thanks

  if (file) {
    while(file.available()){
      lcd.print(file.read());
    }
    file.close();
  }
  if (file) {
    int y;
    int temp;
    char string[16];
    for(y = 0; y < 17; y++ ){
      string[y] = file.read();
      lcd.print(string[y]);
    }
    file.close();
  }

Can you post all of the code?
Which file, what text & from where to where!

Understand, since I've been trying a few pieces of code for that the part where that is (shown by *) is changed in this code

#include <LiquidCrystal.h>
#include <SD.h>

LiquidCrystal lcd(7,6,5,4,3,2);
File file;

void setup() {
  int x;
  randomSeed(analogRead(0));
  //Serial.begin(9600);
  lcd.begin(16,2);
  lcd.cursor();
  if(!SD.begin()) {
    tone(9, 400, 250);
    delay(500);
    noTone(9);
    return;
  }
  lcd.print("Loading.");
  for(x = 1; x < 9; x++) {
    delay(random(300, 750));
    lcd.print(".");
  }
  lcd.clear();
  file = SD.open("file.txt");
  if (file) {
    while(file.available()) {
      lcd.print(file.read());*
    }
    file.close();
  }
  else {
    tone(9, 400, 250);
    delay(500);
    noTone(9);
    return;
  }
}

void loop() {}

*if i chage lcd to Serial on this line it will print the text to the serial log just fine

Oh and just to let you know, when I clear the file (via my computer) and put in just the letter "a" I get out 97 on the LCD. in short It is giving me the Decimal ASCII value of the charecters.

Actually guess what I got it.; I needed to use the readString() from the stream library. Sorry for all the trouble, I guess i didn't work on it hard enough before asking.
Thanks anyways