Let $\{f_n\}$ be a sequence in $L^p([0,1])$ for $p\geq 1$. Suppose there exists $f\in L^p([0,1])$ satisfying $\lim_{n\to\infty} \int_0^1 f_n(x)g(x)dx = \int_0^1 f(x)g(x)dx$ for any $g\in L^2([0,1])$. Moreover, assume that $\lim_{n\to\infty} ||f_n||_p=||f||_p$. In this case, how do I prove that $f_n\rightarrow f$ in $L^p$?
Even when $p=2$, the result is non-trivial since $\lim_{n\to\infty}<f_n-f,g>=0$ (weak convergence) does not simply imply the convergence in $L^2$.
More seriously, if $p\neq 2$, I'm not sure what's going on here. Why for given $f\in L^p$ and $g\in L^2$, $fg\in L^1$?. Holder inequality cannot be applied here.
Moreover, I'm not sure how to use the condition $\lim_{n\to\infty} ||f_n||_p =||f||_p$. If $f_n \to f$ pointwise a.e., this condition seems useful, but this is not the case. How do I prove this? Thank you in advance.