반응형
Buffered Reader를 문자열로 쉽게 변환하는 방법
@POST
@Path("/getphotos")
@Produces(MediaType.TEXT_HTML)
public String getPhotos() throws IOException{
// DataInputStream rd = new DataInputStream(request.getInputStream());
BufferedReader rd = new BufferedReader(
new InputStreamReader(request.getInputStream(), "UTF-8")
);
String line = null;
String message = new String();
final StringBuffer buffer = new StringBuffer(2048);
while ((line = rd.readLine()) != null) {
// buffer.append(line);
message += line;
}
System.out.println(message);
JsonObject json = new JsonObject(message);
return message;
}
위의 코드는 내 서블릿용입니다.그 목적은 스트림을 가져와 Json 파일을 만든 후 클라이언트에 Json을 돌려보내는 것입니다.하지만 Json을 만들기 위해서, 나는 읽어야 한다.BufferedReader
물건rd
"while" 루프를 사용합니다.단, 변환하고 싶다rd
가능한 한 적은 줄의 코드를 입력합니다.그걸 어떻게 하는 거죠?
Java 8부터:
rd.lines().collect(Collectors.joining());
공통 IO 라이브러리를 사용하는 것이 좋습니다.그러면 간단한 라이너 1개입니다.
String message = org.apache.commons.io.IOUtils.toString(rd);
물론 이 메커니즘을 사용하면 서버 메모리를 가득 채우는 끝없는 데이터 스트림을 전송함으로써 서비스 거부 공격이 발생할 수 있습니다.
나는 오늘 이것을 하고 있는 나를 발견했다.차용증을 가져오고 싶지 않아서 다음과 같이 했습니다.
String response = new String();
for (String line; (line = br.readLine()) != null; response += line);
변수를 다음과 같이 String으로 사용합니다.
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
String line = "";
while((line = rd.readLine()) != null){
}
언급URL : https://stackoverflow.com/questions/15040504/how-to-easily-convert-a-bufferedreader-to-a-string
반응형
'programing' 카테고리의 다른 글
ASP에서 Json 결과를 압축하려면 어떻게 해야 합니까?IIS 7.5를 사용하는 NET MVC (0) | 2023.03.02 |
---|---|
정의되지 않은 속성 '_e3_'을 읽을 수 없습니다. (0) | 2023.03.02 |
Oracle 사용자 뷰의 열 이름 나열 (0) | 2023.03.02 |
새 행 문자를 포함하는 JSON 구문 분석 (0) | 2023.03.02 |
여러 스프링 부트 애플리케이션을 한 번에 테스트하는 방법 (0) | 2023.03.02 |