protected List<Article> read() {

		List<Article> documents = new ArrayList<Article>();

		try {
			
			reader = new BufferedReader(new FileReader(filename));
			reader.readLine();
			
			for(int i=0; i < numberArticlesToRead; i++) {
				String line = reader.readLine();
				
				if(line == null || line.equals("") || line.equals("]}")) {
					System.out.println("End of input reached, " + i + " documents successfully read" );
					break;
				}

				documents.add( gson.fromJson(line.replaceAll(",$", ""), Article.class) );

				if(i % 10000 == 0) {
					System.out.println("Read " + i + " of " + numberArticlesToRead);
				}
			}

		} catch (FileNotFoundException e) {
			e.printStackTrace();			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			//Close the BufferedReader.
			try {
				if (reader != null) {
					reader.close();
				}
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}

		System.out.println("Successfully read file");
		return documents;

	}