要从我的串口读取数据,我正在使用inputStream并使用BufferedReaderinputStream.每次阅读后我都要清除BufferedReader.在课堂下BufferedReader没有明确的方法.我尝试使用,reset()但它没有用.这里的任何极客都对这个问题提出了什么建议吗?
我想知道是否有人知道是否可以使用Java中的一个XML解析器逐行读取XML文档中的每一行,并基本上在另一个XML文件中重现相同的文档?(在我的例子中,只取出文档中从点X到点Y的行并复制它们).我考虑过在小型试运行中使用bufferedreader和bufferedwriter,但它没有完全正确地输出文件.以下是我在试运行中所做的事情,但这不是我想要的.那么有没有人有这方面的经验或有任何想法或建议提供?先感谢您.
JAVA CODE
public class IPDriver
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new FileReader("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/document.xml"));
BufferedWriter writer = new BufferedWriter(new FileWriter("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/tempdocument.xml"));
String line = null;
while ((line = reader.readLine()) != null)
{
writer.write(line);
}
// Close to unlock.
reader.close();
// Close to unlock and flush to disk.
writer.close();
}
}
Run Code Online (Sandbox Code Playgroud)
使用Ted Hopp工作JAVA代码
public class IPDriver
{
public static void main(String[] args) throws IOException
{ …Run Code Online (Sandbox Code Playgroud) 我有一个数据文件,由数据行组成,换行符分隔.我需要将文件的内容读入一个字符串数组,我想以正确的大小有效地创建数组.是最有效的
我正在尝试编写一些具有以下基本形式的简单套接字代码 -
try(BufferedReader request = new BufferedReader(new InputStreamReader(sock.getInputStream()))){
//Do some work...
}
//BufferedReader gets closed, but also makes the socket close
...
...
response.write(blah);//Causes exception because socket is closed
Run Code Online (Sandbox Code Playgroud)
我的问题是套接字正在关闭,但我不认为它应该是.try-with-resources创建一个BufferedReader,然后在我离开try块时自动关闭它,但由于某种原因它也会关闭整个套接字!因此,当我稍后使用相同的套接字获得我的响应代码时,我得到一个异常.有没有什么办法解决这一问题?或者我只是不必使用try-with-resources(这将不太理想)?
我对AP计算机科学的一个项目工作,我们基本上是做一个图书馆,在那里你可以添加客户和书籍,借书给客户,等等,我们必须能够读取/写入CSV.我在使用这段代码时遇到了一些麻烦(这只是其中的一部分,而且我很确定其余部分是有效的,整个过程总共接近600行):
public void readForBook() {
try{
BufferedReader CSVFile = new BufferedReader(new FileReader("book.csv"));
String dataRow = CSVFile.readLine();
dataRow = CSVFile.readLine();
while (dataRow != null){
String[] dataArray = dataRow.split(", ");
int tbuid = Integer.parseInt(dataArray[0]);
String t_title = dataArray[1];
String tfirst = dataArray[2];
String tlast = dataArray[3];
String tdescription = dataArray[4];
String tisbn = dataArray[5];
String tdpurchase = dataArray[6];
String tcopyrightyear = dataArray[7];
double tcost = Double.parseDouble(dataArray[8]);
dataRow = CSVFile.readLine();
int crYear = Integer.parseInt(tcopyrightyear);
Book tempBook = new Book(tbuid, t_title, tfirst, tlast, tdescription, …Run Code Online (Sandbox Code Playgroud) 我有14个列表,每个列表都有数字或字符串数据.每个列表的大小是32561.我必须输出一个格式为的文件:
list1_element1 list2_element1.......................list14_element1
list1_element2 list2_element2.......................list14_element2
.
.
.
.
.
list1_element32561 list2_element32561.......................list14_element32561
Run Code Online (Sandbox Code Playgroud)
输出文件中的每个元素由制表符空格分隔.我在Java中这样做了.
out = new BufferedWriter(new FileWriter(fileName));
for(int i=0; i<32561; i++) {
out.write(firstList.get(i));
out.write("\t");
out.write(secondList.get(i));
out.write("\t");
out.write(thirdList.get(i));
out.write("\t");
out.write(fourthList.get(i));
out.write("\t");
out.write(fifthList.get(i));
out.write("\t");
out.write(sixthList.get(i));
out.write("\t");
out.write(seventhList.get(i));
out.write("\t");
out.write(eighthList.get(i));
out.write("\t");
out.write(ninthList.get(i));
out.write("\t");
out.write(tenthList.get(i));
out.write("\t");
out.write(eleventhList.get(i));
out.write("\t");
out.write(twelvethList.get(i));
out.write("\t");
out.write(thirteenthList.get(i));
out.write("\t");
out.write(fourteenthList.get(i));
out.write("\t");
out.write(fifteenthList.get(i));
out.newLine();
}
}
Run Code Online (Sandbox Code Playgroud)
我的程序只打印32441行,最后一行只包含6列.我不明白为什么.有人可以帮忙吗?
public static void main(String[] args) throws MalformedURLException, IOException
{
// TODO code application logic here
URL link1 = new URL("xmlFileHere");
InputStream xml = link1.openStream();
InputStreamReader reader = new InputStreamReader(xml);
BufferedReader reader1 = new BufferedReader(reader);
while(reader1.readLine()!= null)
{
System.out.println(reader1.readLine());
}
}
Run Code Online (Sandbox Code Playgroud)
你好.正如您所看到的,我BufferedReader不是在阅读整个在线XML文件,我不知道为什么.知道为什么会这样吗?
谢谢.
我正在使用BufferedReader类来读取我的Java程序中的输入.我想读取用户输入的输入,用户可以用空格单行输入多个整数数据.我想在整数数组中读取所有这些数据.
输入格式 - 用户首先输入他/她想要输入的数量
然后在下一行中有多个整数值 -
INPUT:
五
2 456 43 21 12
现在,我使用BufferedReader的对象(br)读取输入
int numberOfInputs = Integer.parseInt(br.readLine());
Run Code Online (Sandbox Code Playgroud)
接下来,我想读取数组中的下一行输入
int a[] = new int[n];
Run Code Online (Sandbox Code Playgroud)
但我们无法阅读使用这种技术
for(int i=0;i<n;i++)
{
a[i]=Integer.parseInt(br.readLine()); //won't work
}
Run Code Online (Sandbox Code Playgroud)
那么,我的问题是否有任何解决方案,或者我们不能使用BufferedReader对象从一行读取多个整数
因为使用Scanner对象我们可以读取这种类型的输入
for(int i=0;i<n;i++)
{
a[i]=in.nextInt(); //will work..... 'in' is object of Scanner class
}
Run Code Online (Sandbox Code Playgroud) 由于某种原因,我无法从服务器上的客户端读取行.客户端能够毫无问题地发送行,但服务器不会在第一次调用clientIn.readLine()时移动.我认为它是阻止但我不知道如何处理它.
当我发送没有服务器端循环的行时也会发生这种情况.
Client.java
public void run()
{
try {
socket = new Socket(ip, port);
System.out.println("Client connected on port: " + socket.getRemoteSocketAddress());
//wrap streams for ease
BufferedReader serverIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter serverOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
System.out.println("starting messages");
//send messages
serverOut.println("hello from: " + socket.getLocalSocketAddress());
serverOut.println("msg1: " + this.hashCode());
serverOut.println("msg2: final test");
//close the connection
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
Server.java:
public void run()
{
System.out.println("Server Running on port: " + serverSocket.getLocalPort()); …Run Code Online (Sandbox Code Playgroud) 我有这个简单的方法:
private String read(String filePath) throws IOException {
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String fileContent = "";
StringBuilder stringBuilder = new StringBuilder(fileContent);
while (bufferedReader.readLine() != null){
System.out.println(bufferedReader.readLine());
stringBuilder.append(bufferedReader.readLine());
}
return fileContent;
}
Run Code Online (Sandbox Code Playgroud)
正如你在第8行中看到的那样,我包含了用于debuging目的的print,我希望这个方法从这个txt文件中返回String:
1a1
2b 2a
3c 3b 3a
4d 4cr 4bb4 4a
5e 5d 5c 5b 5ax
6f 6ea 6d 6ca 6bb 6a
7g 7f 7ea
Run Code Online (Sandbox Code Playgroud)
出于某种原因输出是这样的:
2b 2a
5e 5d 5c 5b 5ax
null
Run Code Online (Sandbox Code Playgroud)
为什么它只读取第二和第五行?这个null来自哪里?最后返回的字符串似乎是空的.
我想了解这里发生了什么.谢谢 :)
bufferedreader ×10
java ×10
sockets ×2
xml ×2
arraylist ×1
arrays ×1
buffer ×1
clear ×1
file ×1
file-io ×1
filewriter ×1
integer ×1
memory ×1
performance ×1
printwriter ×1
string ×1
xml-parsing ×1