我正在开发一个发布到网站的应用程序,我正在尝试将实体响应存储为字符串.但是,字符串似乎只包含一小部分响应,大约35行左右.我想知道它是否与缓冲区溢出有关但我真的不确定.我的代码如下:
static String getResponseBody(HttpResponse response) throws IllegalStateException, IOException{
String content = null;
HttpEntity entity = response.getEntity();
if (entity != null)
{
InputStream is = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null)
{
if(isBlankString(line) == false)
{
sb.append(line + "\n");
}
}
br.close();
content = sb.toString();
}
return content;
Run Code Online (Sandbox Code Playgroud)
isBlankString只是注意一条线是否包含任何字符,因为响应中有很多空白行让我烦恼.我有一个问题,即无论有没有得到整个回应.任何人都知道发生了什么或如何解决这个问题?
谢谢
我在Java中做了一些相对简单的I/O. 我有一个.txt文件,我正在阅读使用扫描仪和.txt文件,我正在使用BufferedWriter写.然后另一个Scanner读取该文件,然后另一个BufferedWriter创建另一个.txt文件.我提供了下面的代码以防万一,但我不知道它是否会有太多帮助,因为我不认为代码是这里的问题.代码编译没有任何错误,但它没有做我期望的.由于某种原因,charReader只读取其文件的大约一半,然后hasNext()将返回false,即使文件末尾尚未到达.这些不是大文本文件 - statsReader的文件是34 KB,而charReader的文件是29 KB,甚至更奇怪,因为statsReader读取整个文件很好,而且它更大!此外,我确实有一个try/catch包围的代码,我只是没有包含它.
从我在网上看到的情况来看,这可能发生在非常大的文件中,但这些文件非常小,所以我很丢失.
我的操作系统是Windows 7 64位.
Scanner statsReader = new Scanner(statsFile);
BufferedWriter statsWriter = new BufferedWriter(new FileWriter(outputFile));
while (statsReader.hasNext()) {
statsWriter.write(statsReader.next());
name = statsReader.nextLine();
temp = statsReader.nextLine();
if (temp.contains("form")) {
name += " " + temp;
temp = statsReader.next();
}
statsWriter.write(name);
statsWriter.newLine();
statsWriter.write(temp);
if (! (temp = statsReader.next()).equals("-"))
statsWriter.write("/" + temp);
statsWriter.write("\t");
statsWriter.write(statsReader.nextInt() + "\t");
statsWriter.write(statsReader.nextInt() + "\t");
statsWriter.write(statsReader.nextInt() + "\t");
statsWriter.write(statsReader.nextInt() + "\t");
statsWriter.write(statsReader.nextInt() + "\t");
statsWriter.write(statsReader.nextInt() + "");
statsWriter.newLine();
statsReader.nextInt();
}
Scanner charReader = …Run Code Online (Sandbox Code Playgroud) 我对使用Java进行基本文件读取非常困惑.很多混合信号.
我尝试了几种不同的方式,每次都会遇到一个未找到的异常.我已经检查了一个文件对象设置为当前路径以打印当前目录,我确实在我正在尝试打开的文件所在的目录中.权限已设置,以便每个人都可以阅读.我不确定发生了什么:
BufferedReader infixLines = new BufferedReader ( new FileReader ( "input.infix" ));
Run Code Online (Sandbox Code Playgroud)
这是抛出错误的行,因此使用infixLines的每个连续行也会抛出错误.
我也尝试使用FileInputStream并得到同样的错误.
这就是说干脆
File file = new File("input.infix");
if ( file.exists() )
System.out.println( "Exists" );
Run Code Online (Sandbox Code Playgroud)
做的工作.
非常困惑.
编辑:( Stacktrace?)
ParseInfix.java:13: unreported exception java.io.FileNotFoundException; must be
BufferedReader infixLines = new BufferedReader(new FileReader (n
^
ParseInfix.java:15: unreported exception java.io.IOException; must be caught or
while ( ( line = infixLines.readLine()) != null )
Run Code Online (Sandbox Code Playgroud) 三天我试图弄清楚如何使用相对文件路径读取文件.在eclipse中,这个编译并且工作得很好,但是当我导出app时.它说它找不到文件.这是我工作的截图和代码.
这段代码有效,但只有在eclipse中,它才能编译并完美地完成工作.但是当我将其导出为runnable jar文件时,我得到一个错误,它无法找到licenca.txt
BufferedReader in = new BufferedReader(new FileReader(new File("licenca.txt").getPath()));
String str;
while ((str = in.readLine()) != null) {
taLicenca.append(str + "\n");
}
Run Code Online (Sandbox Code Playgroud)
这是我的项目文件的屏幕截图
文件http://img207.imageshack.us/img207/5317/63432445.png
我试过使用扫描仪功能,结果仍然相同,它在eclipse中工作,但在导出时不起作用.这是错误消息:
我是java的初学者,并为postfix evaluationataion编写了以下问题.虽然该程序适用于控制台IO.使用文件时出现问题.我试图在文件中获取程序的答案output00.txt,但文件是空的.这是代码.我遗漏了对这个问题无关紧要的方法.
public static void main(String[] args) throws Exception {
FileReader input = new FileReader("input00.txt");
BufferedReader in = new BufferedReader(input) ;
FileWriter output = new FileWriter("output00.txt");
BufferedWriter out = new BufferedWriter(output);
while (true) {
String lineReader = in.readLine();
if (lineReader==null) {
break;
}
Stack<String> m_Stack = new Stack<String>();
m_Stack.addAll(Arrays.asList(lineReader.trim().split("[ \t]+")));
if (m_Stack.peek().equals("")){
continue;
}
try {
double finVal = evaluateRPN(m_Stack);
if (!m_Stack.empty()) {
throw new Exception();
}
out.write(finVal + "\n");
}
catch (Exception e) {System.out.println("error");}
}
}
Run Code Online (Sandbox Code Playgroud)
文件input00.txt包含 …
我正在NullPointerException调用方法并将其传递给字符串.我只能假设字符串为null.
BufferedReader之前几行从readline 初始化.这是相关的代码:
FileInputStream tmp = null;
try {
tmp = new FileInputStream(file);
} catch (FileNotFoundException e) {
System.err.println("File not found!");
e.printStackTrace();
System.exit(1);
}
DataInputStream dis = new DataInputStream(tmp);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));
create();
try {
data = br.readLine();
} catch (IOException e) {
System.err.println("First readline failed: " + e);
System.exit(1);
}
while (!data.equals(null)) {
process(data);
...
Run Code Online (Sandbox Code Playgroud)
和错误:
Exception in thread "main" java.lang.NullPointerException
at enc.read(enc.java:40)
at enc.main(enc.java:15)
Run Code Online (Sandbox Code Playgroud) 我有一个txt文件,我想做的就是打开它并删除所有多个空格,因此它们仅成为一个。我用:
br = new BufferedReader(new FileReader("C:\\Users\\Chris\\Desktop\\file_two.txt"));
bw = new BufferedWriter(new FileWriter("C:\\Users\\Chris\\Desktop\\file_two.txt"));
while ((current_line = br.readLine()) != null) {
//System.out.println("Here.");
current_line = current_line.replaceAll("\\s+", " ");
bw.write(current_line);
}
br.close();
bw.close();
Run Code Online (Sandbox Code Playgroud)
但是,至少对我来说,这似乎是正确的,但文件上没有任何内容。如果我使用system.out.println命令,则不会打印该命令,这意味着执行永远不会在while循环中……我该怎么办?谢谢
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("please enter the size of array");
size = br.read();
sarray = new int[size];
for (int i = 0; i < size; i++) {
sarray[i] = i;
}
System.out.println(sarray.length);
Run Code Online (Sandbox Code Playgroud)
当我尝试打印数组的长度时,它显示为"51",即使我将大小设为"3".
我想将一个单词替换为现有文本文件中的另一个单词.我认为我的代码是正确的,但每当我运行程序时,所有文本都会在文本文件中被删除.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String ar[]) throws IOException{
String getText, putText;
File f = new File("Test.txt");
FileReader fr ;
BufferedReader br ;
BufferedWriter bw;
if(f.exists()){
try{
fr = new FileReader(f);
br = new BufferedReader(fr);
bw = new BufferedWriter(new FileWriter(f));
while((getText = br.readLine()) != null){
System.out.println(getText);
if(getText != null){
putText = getText.replaceFirst("Dog", "Cat");
bw.write(putText);
}
}
bw.close();
br.close();
}
catch(IOException e){
e.printStackTrace();
}
}else{ …Run Code Online (Sandbox Code Playgroud) 这是一个从.txt文件中读取所有内容的简单代码.不确定是什么问题.我尝试了一个不同的测试文件,它只读取了line2和line4 null.它甚至不应该null按照while循环条件读取.
import java.io.*;
import java.util.*;
public class FileInput {
public ArrayList<String> readFile() {
ArrayList<String> content = new ArrayList<>();
try {
File file = new File("input.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while (br.readLine() != null) {
line = br.readLine();
content.add(line);
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.out.println("File could not be found. " + e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
return content;
}
public static void main(String []args) {
FileInput …Run Code Online (Sandbox Code Playgroud) bufferedreader ×10
java ×9
file ×4
file-io ×2
ioexception ×2
string ×2
android ×1
filereader ×1
httpresponse ×1
io ×1
path ×1